summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2011-04-05 11:24:39 -0700
committerJeremy Allison <jra@samba.org>2011-04-05 21:53:59 +0200
commitb6a30be70266c07733ddfa2ae08d127e08560868 (patch)
tree0a2c0d1d79dfb4a034b939d95e4ab402bec17d38
parent378c4b221a6be75e1d32cb6fb3a773ce5de6dbda (diff)
downloadsamba-b6a30be70266c07733ddfa2ae08d127e08560868.tar.gz
samba-b6a30be70266c07733ddfa2ae08d127e08560868.tar.bz2
samba-b6a30be70266c07733ddfa2ae08d127e08560868.zip
Fix bug #7080 - Quota only shown when logged as root.
Remove the final incorrect uses of conn->session_info->utok.uid. When we're in the "admin users" list, then this value is not set to zero. Inspired by the comment on this bug by Dmitry Butskoy <dmitry@butskoy.name>. I'll create a different fix for 3.5.x. Jeremy. Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Tue Apr 5 21:53:59 CEST 2011 on sn-devel-104
-rw-r--r--source3/modules/onefs_open.c4
-rw-r--r--source3/smbd/nttrans.c4
-rw-r--r--source3/smbd/trans2.c5
3 files changed, 6 insertions, 7 deletions
diff --git a/source3/modules/onefs_open.c b/source3/modules/onefs_open.c
index 19b2ea0736..80f799ca6f 100644
--- a/source3/modules/onefs_open.c
+++ b/source3/modules/onefs_open.c
@@ -1310,7 +1310,7 @@ NTSTATUS onefs_open_file_ntcreate(connection_struct *conn,
new_file_created = True;
}
- set_share_mode(lck, fsp, conn->session_info->utok.uid, 0,
+ set_share_mode(lck, fsp, get_current_uid(conn), 0,
fsp->oplock_type);
/* Handle strange delete on close create semantics. */
@@ -1666,7 +1666,7 @@ static NTSTATUS onefs_open_directory(connection_struct *conn,
return NT_STATUS_DELETE_PENDING;
}
- set_share_mode(lck, fsp, conn->session_info->utok.uid, 0, NO_OPLOCK);
+ set_share_mode(lck, fsp, get_current_uid(conn), 0, NO_OPLOCK);
/*
* For directories the delete on close bit at open time seems
diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c
index a7da776451..2b540187d9 100644
--- a/source3/smbd/nttrans.c
+++ b/source3/smbd/nttrans.c
@@ -2512,7 +2512,7 @@ static void call_nt_transact_get_user_quota(connection_struct *conn,
ZERO_STRUCT(qt);
/* access check */
- if (conn->session_info->utok.uid != 0) {
+ if (get_current_uid(conn) != 0) {
DEBUG(1,("get_user_quota: access_denied service [%s] user "
"[%s]\n", lp_servicename(SNUM(conn)),
conn->session_info->unix_name));
@@ -2782,7 +2782,7 @@ static void call_nt_transact_set_user_quota(connection_struct *conn,
ZERO_STRUCT(qt);
/* access check */
- if (conn->session_info->utok.uid != 0) {
+ if (get_current_uid(conn) != 0) {
DEBUG(1,("set_user_quota: access_denied service [%s] user "
"[%s]\n", lp_servicename(SNUM(conn)),
conn->session_info->unix_name));
diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index 4890de3a5c..fe06538246 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -3203,7 +3203,7 @@ cBytesSector=%u, cUnitTotal=%u, cUnitAvail=%d\n", (unsigned int)bsize, (unsigned
fsp.fnum = -1;
/* access check */
- if (conn->session_info->utok.uid != sec_initial_uid()) {
+ if (get_current_uid(conn) != 0) {
DEBUG(0,("set_user_quota: access_denied "
"service [%s] user [%s]\n",
lp_servicename(SNUM(conn)),
@@ -3698,8 +3698,7 @@ cap_low = 0x%x, cap_high = 0x%x\n",
ZERO_STRUCT(quotas);
/* access check */
- if ((conn->session_info->utok.uid != sec_initial_uid())
- ||!CAN_WRITE(conn)) {
+ if ((get_current_uid(conn) != 0) || !CAN_WRITE(conn)) {
DEBUG(0,("set_user_quota: access_denied service [%s] user [%s]\n",
lp_servicename(SNUM(conn)),
conn->session_info->unix_name));