s3: VFS: Remove the lp_widelinks() check from check_reduced_name().
authorJeremy Allison <jra@samba.org>
Tue, 7 Apr 2020 00:31:16 +0000 (17:31 -0700)
committerRalph Boehme <slow@samba.org>
Thu, 9 Apr 2020 19:40:35 +0000 (19:40 +0000)
Widelinks are now always denied, unless the vfs_widelinks
VFS module is loaded.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
source3/smbd/vfs.c

index 185383782e83878b799c60dbfc5b8bdba209145f..f31110e5993eb7443da526e37f6f6bfd5720d59f 100644 (file)
@@ -1221,7 +1221,6 @@ NTSTATUS check_reduced_name(connection_struct *conn,
        char *resolved_name = NULL;
        char *new_fname = NULL;
        bool allow_symlinks = true;
-       bool allow_widelinks = false;
 
        DBG_DEBUG("check_reduced_name [%s] [%s]\n", fname, conn->connectpath);
 
@@ -1296,11 +1295,8 @@ NTSTATUS check_reduced_name(connection_struct *conn,
                return NT_STATUS_OBJECT_NAME_INVALID;
        }
 
-       allow_widelinks = lp_widelinks(SNUM(conn));
-       allow_symlinks = lp_follow_symlinks(SNUM(conn));
-
        /* Common widelinks and symlinks checks. */
-       if (!allow_widelinks || !allow_symlinks) {
+       {
                const char *conn_rootdir;
                size_t rootdir_len;
 
@@ -1343,6 +1339,7 @@ NTSTATUS check_reduced_name(connection_struct *conn,
                }
 
                /* Extra checks if all symlinks are disallowed. */
+               allow_symlinks = lp_follow_symlinks(SNUM(conn));
                if (!allow_symlinks) {
                        /* fname can't have changed in resolved_path. */
                        const char *p = &resolved_name[rootdir_len];