From: Jeremy Allison Date: Tue, 7 Apr 2020 00:34:22 +0000 (-0700) Subject: s3: smbd: Always call canonicalize_connect_path() for a (synthesized) msdfs-share. X-Git-Tag: ldb-2.2.0~930 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9eac23201268a23a43d6bcfbbf5a7368169ccec4;p=thirdparty%2Fsamba.git s3: smbd: Always call canonicalize_connect_path() for a (synthesized) msdfs-share. Share path definitions don't need to be aware of symlinks. This is strictly a change in behavior, but the vfs_widelinks module (if loaded) copes with symlinks in the share definition. Signed-off-by: Jeremy Allison Reviewed-by: Ralph Boehme --- diff --git a/source3/smbd/msdfs.c b/source3/smbd/msdfs.c index 9bac6f6f81f..ddfd7d7c7d9 100644 --- a/source3/smbd/msdfs.c +++ b/source3/smbd/msdfs.c @@ -254,6 +254,7 @@ static NTSTATUS create_conn_struct_as_root(TALLOC_CTX *ctx, const char *vfs_user; struct smbd_server_connection *sconn; const char *servicename = lp_const_servicename(snum); + bool ok; sconn = talloc_zero(ctx, struct smbd_server_connection); if (sconn == NULL) { @@ -357,12 +358,11 @@ static NTSTATUS create_conn_struct_as_root(TALLOC_CTX *ctx, return NT_STATUS_UNSUCCESSFUL; } - if (!lp_widelinks(snum)) { - if (!canonicalize_connect_path(conn)) { - DBG_ERR("Failed to canonicalize sharepath\n"); - conn_free(conn); - return NT_STATUS_ACCESS_DENIED; - } + ok = canonicalize_connect_path(conn); + if (!ok) { + DBG_ERR("Failed to canonicalize sharepath\n"); + conn_free(conn); + return NT_STATUS_ACCESS_DENIED; } talloc_free(conn->origpath);