From e80ceb1d7355c8c46a2ed90d5721cf367640f4e8 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Fri, 12 Mar 2010 13:56:51 -0800 Subject: Remove more uses of "extern struct current_user current_user;". Use accessor functions to get to this value. Tidies up much of the user context code. Volker, please look at the changes in smbd/uid.c to familiarize yourself with these changes as I think they make the logic in there cleaner. Cause smbd/posix_acls.c code to look at current user context, not stored context on the conn struct - allows correct use of these function calls under a become_root()/unbecome_root() pair. Jeremy. --- source3/smbd/dir.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'source3/smbd/dir.c') diff --git a/source3/smbd/dir.c b/source3/smbd/dir.c index b1e9734681..69ebc57473 100644 --- a/source3/smbd/dir.c +++ b/source3/smbd/dir.c @@ -1129,9 +1129,11 @@ static bool user_can_read_file(connection_struct *conn, /* * If user is a member of the Admin group * we never hide files from them. + * Use (uid_t)0 here not sec_initial_uid() + * because of the RAW-SAMBA3HIDE test. */ - if (conn->admin_user) { + if (get_current_uid(conn) == (uid_t)0) { return True; } @@ -1151,9 +1153,11 @@ static bool user_can_write_file(connection_struct *conn, /* * If user is a member of the Admin group * we never hide files from them. + * Use (uid_t)0 here not sec_initial_uid() + * because of the RAW-SAMBA3HIDE test. */ - if (conn->admin_user) { + if (get_current_uid(conn) == (uid_t)0) { return True; } @@ -1178,10 +1182,13 @@ static bool file_is_special(connection_struct *conn, /* * If user is a member of the Admin group * we never hide files from them. + * Use (uid_t)0 here not sec_initial_uid() + * because of the RAW-SAMBA3HIDE test. */ - if (conn->admin_user) + if (get_current_uid(conn) == (uid_t)0) { return False; + } SMB_ASSERT(VALID_STAT(smb_fname->st)); -- cgit