From b6a30be70266c07733ddfa2ae08d127e08560868 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Tue, 5 Apr 2011 11:24:39 -0700 Subject: 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 . I'll create a different fix for 3.5.x. Jeremy. Autobuild-User: Jeremy Allison Autobuild-Date: Tue Apr 5 21:53:59 CEST 2011 on sn-devel-104 --- source3/modules/onefs_open.c | 4 ++-- source3/smbd/nttrans.c | 4 ++-- source3/smbd/trans2.c | 5 ++--- 3 files changed, 6 insertions(+), 7 deletions(-) (limited to 'source3') 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)); -- cgit