diff options
Diffstat (limited to 'source3/smbd/msdfs.c')
-rw-r--r-- | source3/smbd/msdfs.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/source3/smbd/msdfs.c b/source3/smbd/msdfs.c index e4760ec461..de57d8def2 100644 --- a/source3/smbd/msdfs.c +++ b/source3/smbd/msdfs.c @@ -672,6 +672,17 @@ static NTSTATUS dfs_redirect(TALLOC_CTX *ctx, return NT_STATUS_OK; } + if (!( strequal(pdp->servicename, lp_servicename(SNUM(conn))) + || (strequal(pdp->servicename, HOMES_NAME) + && strequal(lp_servicename(SNUM(conn)), + conn->server_info->sanitized_username) )) ) { + + /* The given sharename doesn't match this connection. */ + TALLOC_FREE(pdp); + + return NT_STATUS_OBJECT_PATH_NOT_FOUND; + } + status = dfs_path_lookup(ctx, conn, path_in, pdp, search_wcard_flag, NULL, NULL); if (!NT_STATUS_IS_OK(status)) { |