Make sure the returned sd is on the right context, and if not it's always freed.
authorJeremy Allison <jra@samba.org>
Tue, 9 Oct 2012 19:46:57 +0000 (12:46 -0700)
committerJeremy Allison <jra@samba.org>
Tue, 9 Oct 2012 21:35:50 +0000 (23:35 +0200)
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Tue Oct  9 23:35:50 CEST 2012 on sn-devel-104

source3/rpc_server/srvsvc/srv_srvsvc_nt.c

index 1d976e1e87d5cc7b39e5ff195da1c5a97d2b1ba2..982b0b479b3fe6611e0de8967d050e7a01d2c79c 100644 (file)
@@ -2210,7 +2210,7 @@ WERROR _srvsvc_NetGetFileSecurity(struct pipes_struct *p,
        }
 
        sd_buf->sd_size = sd_size;
-       sd_buf->sd = psd;
+       sd_buf->sd = talloc_move(p->mem_ctx, &psd);
 
        *r->out.sd_buf = sd_buf;
 
@@ -2237,6 +2237,8 @@ error_exit:
        }
 
  done:
+
+       TALLOC_FREE(psd);
        TALLOC_FREE(smb_fname);
 
        return werr;