s3: smbd: Make it clear we only overwrite *ppath_contains_wcard if resolve_dfspath_wc...
authorJeremy Allison <jra@samba.org>
Thu, 18 May 2017 18:41:10 +0000 (11:41 -0700)
committerJeremy Allison <jra@samba.org>
Mon, 22 May 2017 16:41:15 +0000 (18:41 +0200)
The API for this function specifies that *ppath_contains_wcard
must already have been initialized on entry to filename_convert()
(not a great design, but that's the way it is currently).

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Uri Simchoni <uri@samba.org>
source3/smbd/filename.c

index 49646d40112b9f1a068fa7281643865263501632..36717a6e60c042b5416f13e7e568b3d31d1f7b36 100644 (file)
@@ -1550,13 +1550,14 @@ static NTSTATUS filename_convert_internal(TALLOC_CTX *ctx,
        *pp_smb_fname = NULL;
 
        if (dfs_path) {
+               bool path_contains_wcard = false;
                char *fname = NULL;
                status = resolve_dfspath_wcard(ctx, conn,
                                name_in,
                                ucf_flags,
                                !conn->sconn->using_smb2,
                                &fname,
-                               ppath_contains_wcard);
+                               &path_contains_wcard);
                if (!NT_STATUS_IS_OK(status)) {
                        DEBUG(10,("filename_convert_internal: resolve_dfspath "
                                "failed for name %s with %s\n",
@@ -1565,6 +1566,9 @@ static NTSTATUS filename_convert_internal(TALLOC_CTX *ctx,
                        return status;
                }
                name_in = fname;
+               if (ppath_contains_wcard != NULL && path_contains_wcard) {
+                       *ppath_contains_wcard = path_contains_wcard;
+               }
        }
 
        if (is_fake_file_path(name_in)) {