summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
Diffstat (limited to 'source3')
-rw-r--r--source3/rpc_server/dfs/srv_dfs_nt.c3
-rw-r--r--source3/smbd/msdfs.c5
-rw-r--r--source3/smbd/proto.h1
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);