diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/rpc_server/dfs/srv_dfs_nt.c | 3 | ||||
-rw-r--r-- | source3/smbd/msdfs.c | 5 | ||||
-rw-r--r-- | source3/smbd/proto.h | 1 |
3 files changed, 6 insertions, 3 deletions
diff --git a/source3/rpc_server/dfs/srv_dfs_nt.c b/source3/rpc_server/dfs/srv_dfs_nt.c index 56f4de551d..efb0a1ec0a 100644 --- a/source3/rpc_server/dfs/srv_dfs_nt.c +++ b/source3/rpc_server/dfs/srv_dfs_nt.c @@ -362,7 +362,8 @@ WERROR _dfs_GetInfo(struct pipes_struct *p, struct dfs_GetInfo *r) return WERR_NOMEM; } - if(!create_junction(ctx, r->in.dfs_entry_path, jn)) { + if(!create_junction(ctx, r->in.dfs_entry_path, + !smbd_server_conn->using_smb2, jn)) { return WERR_DFS_NO_SUCH_SERVER; } diff --git a/source3/smbd/msdfs.c b/source3/smbd/msdfs.c index 66258a22fd..64a6b40820 100644 --- a/source3/smbd/msdfs.c +++ b/source3/smbd/msdfs.c @@ -1350,6 +1350,7 @@ int setup_dfs_referral(connection_struct *orig_conn, bool create_junction(TALLOC_CTX *ctx, const char *dfs_path, + bool allow_broken_path, struct junction_map *jucn) { int snum; @@ -1360,8 +1361,8 @@ bool create_junction(TALLOC_CTX *ctx, if (!pdp) { return False; } - status = parse_dfs_path(NULL, dfs_path, False, - !smbd_server_conn->using_smb2, pdp, &dummy); + status = parse_dfs_path(NULL, dfs_path, False, allow_broken_path, + pdp, &dummy); if (!NT_STATUS_IS_OK(status)) { return False; } diff --git a/source3/smbd/proto.h b/source3/smbd/proto.h index 1c8fd1f556..cf7c90450a 100644 --- a/source3/smbd/proto.h +++ b/source3/smbd/proto.h @@ -458,6 +458,7 @@ int setup_dfs_referral(connection_struct *orig_conn, char **ppdata, NTSTATUS *pstatus); bool create_junction(TALLOC_CTX *ctx, const char *dfs_path, + bool allow_broken_path, struct junction_map *jucn); bool create_msdfs_link(const struct junction_map *jucn); bool remove_msdfs_link(const struct junction_map *jucn); |