diff options
author | Jeremy Allison <jra@samba.org> | 2011-04-05 11:24:39 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2011-04-05 21:53:59 +0200 |
commit | b6a30be70266c07733ddfa2ae08d127e08560868 (patch) | |
tree | 0a2c0d1d79dfb4a034b939d95e4ab402bec17d38 | |
parent | 378c4b221a6be75e1d32cb6fb3a773ce5de6dbda (diff) | |
download | samba-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.c | 4 | ||||
-rw-r--r-- | source3/smbd/nttrans.c | 4 | ||||
-rw-r--r-- | source3/smbd/trans2.c | 5 |
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)); |