]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbd: convert form_junctions() to use create_conn_struct_tos_cwd()
authorStefan Metzmacher <metze@samba.org>
Thu, 24 May 2018 15:55:02 +0000 (17:55 +0200)
committerStefan Metzmacher <metze@samba.org>
Thu, 14 Jun 2018 18:52:22 +0000 (20:52 +0200)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/smbd/msdfs.c

index 57e5b2072392504c82836bf70bd0a0593c0a49c6..18fae96f2e58d6009952757d3393298f72c8c6a3 100644 (file)
@@ -1646,9 +1646,9 @@ static int form_junctions(TALLOC_CTX *ctx,
        const char *connect_path = lp_path(frame, snum);
        char *service_name = lp_servicename(frame, snum);
        const char *msdfs_proxy = lp_msdfs_proxy(frame, snum);
-       connection_struct *conn;
+       struct conn_struct_tos *c = NULL;
+       connection_struct *conn = NULL;
        struct referral *ref = NULL;
-       struct smb_filename *cwd_fname = NULL;
        struct smb_filename *smb_fname = NULL;
        NTSTATUS status;
 
@@ -1666,20 +1666,18 @@ static int form_junctions(TALLOC_CTX *ctx,
         * Fake up a connection struct for the VFS layer.
         */
 
-       status = create_conn_struct_cwd(frame,
-                                       server_event_context(),
-                                       server_messaging_context(),
-                                       &conn,
-                                       snum,
-                                       connect_path,
-                                       NULL,
-                                       &cwd_fname);
+       status = create_conn_struct_tos_cwd(server_messaging_context(),
+                                           snum,
+                                           connect_path,
+                                           NULL,
+                                           &c);
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(3, ("create_conn_struct failed: %s\n",
                          nt_errstr(status)));
                TALLOC_FREE(frame);
                return 0;
        }
+       conn = c->conn;
 
        /* form a junction for the msdfs root - convention
           DO NOT REMOVE THIS: NT clients will not work with us
@@ -1787,8 +1785,6 @@ out:
                SMB_VFS_CLOSEDIR(conn,dirp);
        }
 
-       vfs_ChDir(conn, cwd_fname);
-       conn_free(conn);
        TALLOC_FREE(frame);
        return cnt;
 }