diff options
author | Jeremy Allison <jra@samba.org> | 2005-06-17 15:54:10 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 10:57:19 -0500 |
commit | 000477943c3dd41fd44f2aef3755aa603ba5d595 (patch) | |
tree | 4b7e76d4ceb0ca33cceca0a872a6ce93729dd0b5 | |
parent | a091b37d59d1e0228a9c8d4bd2a31e9bbaafde99 (diff) | |
download | samba-000477943c3dd41fd44f2aef3755aa603ba5d595.tar.gz samba-000477943c3dd41fd44f2aef3755aa603ba5d595.tar.xz samba-000477943c3dd41fd44f2aef3755aa603ba5d595.zip |
r7693: Fix from James Peach @ SGI for null pointer ACL free.
Jeremy.
-rw-r--r-- | source/smbd/posix_acls.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/source/smbd/posix_acls.c b/source/smbd/posix_acls.c index 796587c94c0..a3174440eff 100644 --- a/source/smbd/posix_acls.c +++ b/source/smbd/posix_acls.c @@ -2949,7 +2949,9 @@ static int try_chown(connection_struct *conn, const char *fname, uid_t uid, gid_ return 0; /* Case (2). */ - if ((uid == current_user.uid) && (user_has_privileges(current_user.nt_user_token,&se_take_ownership))) { + if (lp_enable_privileges() && + (uid == current_user.uid) && + (user_has_privileges(current_user.nt_user_token,&se_take_ownership))) { become_root(); /* Keep the current file gid the same - take ownership doesn't imply group change. */ ret = SMB_VFS_CHOWN(conn, fname, uid, (gid_t)-1); @@ -3970,7 +3972,9 @@ failed to match on user or group in token (ret = %d).\n", fname, ret )); done: - SMB_VFS_SYS_ACL_FREE_ACL(conn, posix_acl); + if (posix_acl) { + SMB_VFS_SYS_ACL_FREE_ACL(conn, posix_acl); + } DEBUG(10,("check_posix_acl_group_write: file %s returning (ret = %d).\n", fname, ret )); return ret; |