s3: smbd: We can now remove the 'bool dfs_path' parameter from filename_convert().
authorJeremy Allison <jra@samba.org>
Thu, 18 May 2017 19:29:50 +0000 (12:29 -0700)
committerJeremy Allison <jra@samba.org>
Mon, 22 May 2017 16:41:16 +0000 (18:41 +0200)
Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Uri Simchoni <uri@samba.org>
source3/rpc_server/srvsvc/srv_srvsvc_nt.c
source3/smbd/filename.c
source3/smbd/nttrans.c
source3/smbd/open.c
source3/smbd/proto.h
source3/smbd/reply.c
source3/smbd/smb2_create.c
source3/smbd/smb2_query_directory.c
source3/smbd/trans2.c

index 513ef17c90303a48f4beed62fa3ea67ac788395a..fdf42ea030b47153729b7193917d4e3a1a12c0ec 100644 (file)
@@ -2358,7 +2358,6 @@ WERROR _srvsvc_NetGetFileSecurity(struct pipes_struct *p,
 
        nt_status = filename_convert(talloc_tos(),
                                        conn,
-                                       false,
                                        r->in.file,
                                        ucf_flags,
                                        NULL,
@@ -2508,7 +2507,6 @@ WERROR _srvsvc_NetSetFileSecurity(struct pipes_struct *p,
 
        nt_status = filename_convert(talloc_tos(),
                                        conn,
-                                       false,
                                        r->in.file,
                                        ucf_flags,
                                        NULL,
index cb0ce57df28107b065677bf3aaa001488f8a58b8..9586857da0bc38b49c2075a0b1ed5b082714e8ff 100644 (file)
@@ -1535,7 +1535,6 @@ static NTSTATUS build_stream_path(TALLOC_CTX *mem_ctx,
  *
  * @param ctx          talloc_ctx to allocate memory with.
  * @param conn         connection struct for vfs calls.
- * @param dfs_path     Whether this path requires dfs resolution.
  * @param smbreq       SMB request if we're using privileges.
  * @param name_in      The unconverted name.
  * @param ucf_flags    flags to pass through to unix_convert().
@@ -1552,7 +1551,6 @@ static NTSTATUS build_stream_path(TALLOC_CTX *mem_ctx,
  */
 static NTSTATUS filename_convert_internal(TALLOC_CTX *ctx,
                                connection_struct *conn,
-                               bool dfs_path,
                                struct smb_request *smbreq,
                                const char *name_in,
                                uint32_t ucf_flags,
@@ -1563,7 +1561,7 @@ static NTSTATUS filename_convert_internal(TALLOC_CTX *ctx,
 
        *pp_smb_fname = NULL;
 
-       if (dfs_path) {
+       if (ucf_flags & UCF_DFS_PATHNAME) {
                bool path_contains_wcard = false;
                char *fname = NULL;
                status = resolve_dfspath_wcard(ctx, conn,
@@ -1583,6 +1581,7 @@ static NTSTATUS filename_convert_internal(TALLOC_CTX *ctx,
                if (ppath_contains_wcard != NULL && path_contains_wcard) {
                        *ppath_contains_wcard = path_contains_wcard;
                }
+               ucf_flags &= ~UCF_DFS_PATHNAME;
        }
 
        if (is_fake_file_path(name_in)) {
@@ -1647,7 +1646,6 @@ static NTSTATUS filename_convert_internal(TALLOC_CTX *ctx,
 
 NTSTATUS filename_convert(TALLOC_CTX *ctx,
                                connection_struct *conn,
-                               bool dfs_path,
                                const char *name_in,
                                uint32_t ucf_flags,
                                bool *ppath_contains_wcard,
@@ -1655,7 +1653,6 @@ NTSTATUS filename_convert(TALLOC_CTX *ctx,
 {
        return filename_convert_internal(ctx,
                                        conn,
-                                       dfs_path,
                                        NULL,
                                        name_in,
                                        ucf_flags,
@@ -1678,7 +1675,6 @@ NTSTATUS filename_convert_with_privilege(TALLOC_CTX *ctx,
 {
        return filename_convert_internal(ctx,
                                        conn,
-                                       smbreq->flags2 & FLAGS2_DFS_PATHNAMES,
                                        smbreq,
                                        name_in,
                                        ucf_flags,
index 31870b941ec59c23bf7f63fe2d9c87c81f4a8416..7b7f2056099e9cde7ac4deac84f21f79d32ca507 100644 (file)
@@ -538,7 +538,6 @@ void reply_ntcreate_and_X(struct smb_request *req)
        ucf_flags = filename_create_ucf_flags(req, create_disposition);
        status = filename_convert(ctx,
                                conn,
-                               req->flags2 & FLAGS2_DFS_PATHNAMES,
                                fname,
                                ucf_flags,
                                NULL,
@@ -1111,7 +1110,6 @@ static void call_nt_transact_create(connection_struct *conn,
        ucf_flags = filename_create_ucf_flags(req, create_disposition);
        status = filename_convert(ctx,
                                conn,
-                               req->flags2 & FLAGS2_DFS_PATHNAMES,
                                fname,
                                ucf_flags,
                                NULL,
@@ -1633,7 +1631,6 @@ void reply_ntrename(struct smb_request *req)
 
        /* rename_internals() calls unix_convert(), so don't call it here. */
        status = filename_convert(ctx, conn,
-                                 req->flags2 & FLAGS2_DFS_PATHNAMES,
                                  oldname,
                                  ucf_flags_src,
                                  NULL,
@@ -1651,7 +1648,6 @@ void reply_ntrename(struct smb_request *req)
        }
 
        status = filename_convert(ctx, conn,
-                                 req->flags2 & FLAGS2_DFS_PATHNAMES,
                                  newname,
                                  ucf_flags_dst,
                                  &dest_has_wcard,
index c484f5177f7bc0b7783980f09d772a91f97b4ed2..49932e985045cf64f1c8af8d349ebd8ddaf8b3d1 100644 (file)
@@ -5459,7 +5459,6 @@ NTSTATUS get_relative_fid_filename(connection_struct *conn,
 
        status = filename_convert(req,
                                conn,
-                               req->flags2 & FLAGS2_DFS_PATHNAMES,
                                new_base_name,
                                ucf_flags,
                                NULL,
index 65994364b0808596370ad08c22df2b07bb339cab..0be2a49b4f3a1a78923421ebc21be344301e842b 100644 (file)
@@ -351,7 +351,6 @@ int get_real_filename(connection_struct *conn, const char *path,
                      char **found_name);
 NTSTATUS filename_convert(TALLOC_CTX *mem_ctx,
                        connection_struct *conn,
-                       bool dfs_path,
                        const char *name_in,
                        uint32_t ucf_flags,
                        bool *ppath_contains_wcard,
index c6b5b6201792624b98cc7cb3b0ea7535ffc41928..e6fabad8e0076a08713cfa4ab75378ec298b769e 100644 (file)
@@ -1297,7 +1297,6 @@ void reply_checkpath(struct smb_request *req)
 
        status = filename_convert(ctx,
                                conn,
-                               req->flags2 & FLAGS2_DFS_PATHNAMES,
                                name,
                                ucf_flags,
                                NULL,
@@ -1396,7 +1395,6 @@ void reply_getatr(struct smb_request *req)
                uint32_t ucf_flags = ucf_flags_from_smb_request(req);
                status = filename_convert(ctx,
                                conn,
-                               req->flags2 & FLAGS2_DFS_PATHNAMES,
                                fname,
                                ucf_flags,
                                NULL,
@@ -1500,7 +1498,6 @@ void reply_setatr(struct smb_request *req)
 
        status = filename_convert(ctx,
                                conn,
-                               req->flags2 & FLAGS2_DFS_PATHNAMES,
                                fname,
                                ucf_flags,
                                NULL,
@@ -1799,7 +1796,6 @@ void reply_search(struct smb_request *req)
                uint32_t ucf_flags = UCF_ALWAYS_ALLOW_WCARD_LCOMP |
                        ucf_flags_from_smb_request(req);
                nt_status = filename_convert(ctx, conn,
-                                            req->flags2 & FLAGS2_DFS_PATHNAMES,
                                             path,
                                             ucf_flags,
                                             &mask_contains_wcard,
@@ -2145,7 +2141,6 @@ void reply_open(struct smb_request *req)
 
        status = filename_convert(ctx,
                                conn,
-                               req->flags2 & FLAGS2_DFS_PATHNAMES,
                                fname,
                                ucf_flags,
                                NULL,
@@ -2318,7 +2313,6 @@ void reply_open_and_X(struct smb_request *req)
 
        status = filename_convert(ctx,
                                conn,
-                               req->flags2 & FLAGS2_DFS_PATHNAMES,
                                fname,
                                ucf_flags,
                                NULL,
@@ -2563,7 +2557,6 @@ void reply_mknew(struct smb_request *req)
        ucf_flags = filename_create_ucf_flags(req, create_disposition);
        status = filename_convert(ctx,
                                conn,
-                               req->flags2 & FLAGS2_DFS_PATHNAMES,
                                fname,
                                ucf_flags,
                                NULL,
@@ -2700,7 +2693,6 @@ void reply_ctemp(struct smb_request *req)
 
                ucf_flags = filename_create_ucf_flags(req, FILE_CREATE);
                status = filename_convert(ctx, conn,
-                               req->flags2 & FLAGS2_DFS_PATHNAMES,
                                fname,
                                ucf_flags,
                                NULL,
@@ -3240,7 +3232,6 @@ void reply_unlink(struct smb_request *req)
        }
 
        status = filename_convert(ctx, conn,
-                                 req->flags2 & FLAGS2_DFS_PATHNAMES,
                                  name,
                                  ucf_flags,
                                  &path_contains_wcard,
@@ -6151,7 +6142,6 @@ void reply_mkdir(struct smb_request *req)
 
        ucf_flags = filename_create_ucf_flags(req, FILE_CREATE);
        status = filename_convert(ctx, conn,
-                                req->flags2 & FLAGS2_DFS_PATHNAMES,
                                 directory,
                                 ucf_flags,
                                 NULL,
@@ -6222,7 +6212,6 @@ void reply_rmdir(struct smb_request *req)
        }
 
        status = filename_convert(ctx, conn,
-                                req->flags2 & FLAGS2_DFS_PATHNAMES,
                                 directory,
                                 ucf_flags,
                                 NULL,
@@ -7342,7 +7331,6 @@ void reply_mv(struct smb_request *req)
 
        status = filename_convert(ctx,
                                  conn,
-                                 req->flags2 & FLAGS2_DFS_PATHNAMES,
                                  name,
                                  src_ucf_flags,
                                  &src_has_wcard,
@@ -7360,7 +7348,6 @@ void reply_mv(struct smb_request *req)
 
        status = filename_convert(ctx,
                                  conn,
-                                 req->flags2 & FLAGS2_DFS_PATHNAMES,
                                  newname,
                                  dst_ucf_flags,
                                  &dest_has_wcard,
@@ -7654,7 +7641,6 @@ void reply_copy(struct smb_request *req)
        }
 
        status = filename_convert(ctx, conn,
-                                 req->flags2 & FLAGS2_DFS_PATHNAMES,
                                  fname_src,
                                  ucf_flags_src,
                                  &source_has_wild,
@@ -7670,7 +7656,6 @@ void reply_copy(struct smb_request *req)
        }
 
        status = filename_convert(ctx, conn,
-                                 req->flags2 & FLAGS2_DFS_PATHNAMES,
                                  fname_dst,
                                  ucf_flags_dst,
                                  &dest_has_wild,
index cba0781430ecb20c7285e36fe36f2e8e5d89d93c..5a371aeef845963400d05af26c617c7d2622edb7 100644 (file)
@@ -405,7 +405,7 @@ static NTSTATUS smbd_smb2_create_durable_lease_check(struct smb_request *smb1req
        }
 
        ucf_flags = filename_create_ucf_flags(smb1req, FILE_OPEN);
-       status = filename_convert(talloc_tos(), fsp->conn, false,
+       status = filename_convert(talloc_tos(), fsp->conn,
                                  requested_filename, ucf_flags,
                                  NULL, &smb_fname);
        if (!NT_STATUS_IS_OK(status)) {
@@ -1106,7 +1106,6 @@ static struct tevent_req *smbd_smb2_create_send(TALLOC_CTX *mem_ctx,
                        ucf_flags = filename_create_ucf_flags(smb1req, in_create_disposition);
                        status = filename_convert(req,
                                                  smb1req->conn,
-                                                 smb1req->flags2 & FLAGS2_DFS_PATHNAMES,
                                                  fname,
                                                  ucf_flags,
                                                  NULL, /* ppath_contains_wcards */
index 6b6dae7873a637b1f3d4537ea92a31138c4adcda..3e0abdf770af37c0a2797713895e1e2aa3990ec9 100644 (file)
@@ -392,7 +392,6 @@ static struct tevent_req *smbd_smb2_query_directory_send(TALLOC_CTX *mem_ctx,
                }
                status = filename_convert(state,
                                conn,
-                               false, /* Not a DFS path. */
                                fullpath,
                                ucf_flags,
                                &wcard_has_wild,
index 9f8689290c1cb167cc1717ae3850ad46f9860838..8fd238ae96c92cd450aa21275e9d997b53b33a9d 100644 (file)
@@ -1289,7 +1289,6 @@ static void call_trans2open(connection_struct *conn,
 
        status = filename_convert(ctx,
                                conn,
-                               req->flags2 & FLAGS2_DFS_PATHNAMES,
                                fname,
                                ucf_flags,
                                NULL,
@@ -2733,7 +2732,6 @@ close_if_end = %d requires_resume_key = %d backup_priv = %d level = 0x%x, max_da
                                &smb_dname);
        } else {
                ntstatus = filename_convert(talloc_tos(), conn,
-                                   req->flags2 & FLAGS2_DFS_PATHNAMES,
                                    directory,
                                    ucf_flags,
                                    &mask_contains_wcard,
@@ -5851,7 +5849,6 @@ static void call_trans2qfilepathinfo(connection_struct *conn,
 
                status = filename_convert(req,
                                        conn,
-                                       req->flags2 & FLAGS2_DFS_PATHNAMES,
                                        fname,
                                        ucf_flags,
                                        NULL,
@@ -6690,7 +6687,6 @@ static NTSTATUS smb_set_file_unix_hlink(connection_struct *conn,
 
        status = filename_convert(ctx,
                                conn,
-                               req->flags2 & FLAGS2_DFS_PATHNAMES,
                                oldname,
                                ucf_flags,
                                NULL,
@@ -6766,7 +6762,6 @@ static NTSTATUS smb2_file_rename_information(connection_struct *conn,
 
        status = filename_convert(ctx,
                                conn,
-                               req->flags2 & FLAGS2_DFS_PATHNAMES,
                                newname,
                                ucf_flags,
                                NULL,
@@ -6877,7 +6872,6 @@ static NTSTATUS smb_file_link_information(connection_struct *conn,
 
        status = filename_convert(ctx,
                                conn,
-                               req->flags2 & FLAGS2_DFS_PATHNAMES,
                                newname,
                                ucf_flags,
                                NULL,
@@ -8830,7 +8824,6 @@ static void call_trans2setfilepathinfo(connection_struct *conn,
                }
 
                status = filename_convert(req, conn,
-                                        req->flags2 & FLAGS2_DFS_PATHNAMES,
                                         fname,
                                         ucf_flags,
                                         NULL,
@@ -8980,7 +8973,6 @@ static void call_trans2mkdir(connection_struct *conn, struct smb_request *req,
 
        status = filename_convert(ctx,
                                conn,
-                               req->flags2 & FLAGS2_DFS_PATHNAMES,
                                directory,
                                ucf_flags,
                                NULL,