s3: posix_acls. Always use STAT, not LSTAT here.
authorJeremy Allison <jra@samba.org>
Sat, 19 Mar 2016 04:50:15 +0000 (21:50 -0700)
committerJeremy Allison <jra@samba.org>
Thu, 24 Mar 2016 21:57:16 +0000 (22:57 +0100)
We have already refused acls on a symlink.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Uri Simchoni <uri@samba.org>
source3/smbd/posix_acls.c

index 8fc7cbae3faecbbcb94bfc4532d83f162da036d4..2bb90c4be1456d5eca7f422ba3ab8f82f795371e 100644 (file)
@@ -3566,11 +3566,13 @@ NTSTATUS posix_get_nt_acl(struct connection_struct *conn,
        }
 
        /* Get the stat struct for the owner info. */
-       if (lp_posix_pathnames()) {
-               ret = SMB_VFS_LSTAT(conn, smb_fname);
-       } else {
-               ret = SMB_VFS_STAT(conn, smb_fname);
-       }
+       /*
+        * We can directly use SMB_VFS_STAT here, as if this was a
+        * POSIX call on a symlink, we've already refused it.
+        * For a Windows acl mapped call on a symlink, we want to follow
+        * it.
+        */
+       ret = SMB_VFS_STAT(conn, smb_fname);
 
        if (ret == -1) {
                TALLOC_FREE(frame);