s3:mdssvc: initialize the returned share_path with the empty string
authorRalph Boehme <slow@samba.org>
Tue, 16 Apr 2019 17:25:09 +0000 (19:25 +0200)
committerJeremy Allison <jra@samba.org>
Thu, 8 Aug 2019 20:24:33 +0000 (20:24 +0000)
macOS returns the empty path for an unknown share. This paves the way for that
change. Currently we still fail the RPC request if the share is not known with
DCERPC_FAULT_CANT_PERFORM, but this is wrong and is going to be changed in the
next commit.

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/rpc_server/mdssvc/srv_mdssvc_nt.c

index 289167e0975a5d83ddb58d38eef862e5386c2803..49a26fac6789fb66322ffb824104f6e1d4647ea1 100644 (file)
@@ -145,6 +145,7 @@ static NTSTATUS create_mdssvc_policy_handle(TALLOC_CTX *mem_ctx,
 void _mdssvc_open(struct pipes_struct *p, struct mdssvc_open *r)
 {
        int snum;
+       char *outpath = discard_const_p(char, r->out.share_path);
        char *path;
        NTSTATUS status;
 
@@ -153,6 +154,7 @@ void _mdssvc_open(struct pipes_struct *p, struct mdssvc_open *r)
        *r->out.device_id = *r->in.device_id;
        *r->out.unkn2 = *r->in.unkn2;
        *r->out.unkn3 = *r->out.unkn3;
+       outpath[0] = '\0';
 
        snum = lp_servicenumber(r->in.share_name);
        if (!VALID_SNUM(snum)) {
@@ -184,7 +186,7 @@ void _mdssvc_open(struct pipes_struct *p, struct mdssvc_open *r)
                        return;
                }
 
-               strlcpy(discard_const_p(char, r->out.share_path), path, 1024);
+               strlcpy(outpath, path, 1024);
                talloc_free(path);
        }