]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
libnetjoin: only close existing policy handles while unjoining.
authorGünther Deschner <gd@samba.org>
Wed, 4 Jun 2008 00:43:41 +0000 (02:43 +0200)
committerGünther Deschner <gd@samba.org>
Wed, 4 Jun 2008 00:43:41 +0000 (02:43 +0200)
Guenther

source/libnet/libnet_join.c

index d0ecd225adad03199c3c8813fe3574cf31df934f..1ab75d7882103d87357bf7fbb054ae24b4fdbad4 100644 (file)
@@ -1115,6 +1115,10 @@ static NTSTATUS libnet_join_unjoindomain_rpc(TALLOC_CTX *mem_ctx,
        struct samr_Ids name_types;
        union samr_UserInfo *info = NULL;
 
+       ZERO_STRUCT(sam_pol);
+       ZERO_STRUCT(domain_pol);
+       ZERO_STRUCT(user_pol);
+
        status = cli_full_connection(&cli, NULL,
                                     r->in.dc_name,
                                     NULL, 0,
@@ -1216,8 +1220,12 @@ static NTSTATUS libnet_join_unjoindomain_rpc(TALLOC_CTX *mem_ctx,
 
 done:
        if (pipe_hnd) {
-               rpccli_samr_Close(pipe_hnd, mem_ctx, &domain_pol);
-               rpccli_samr_Close(pipe_hnd, mem_ctx, &sam_pol);
+               if (is_valid_policy_hnd(&domain_pol)) {
+                       rpccli_samr_Close(pipe_hnd, mem_ctx, &domain_pol);
+               }
+               if (is_valid_policy_hnd(&sam_pol)) {
+                       rpccli_samr_Close(pipe_hnd, mem_ctx, &sam_pol);
+               }
                TALLOC_FREE(pipe_hnd);
        }