sq TODO _dcerpc_binding_set_pointer_option
authorStefan Metzmacher <metze@samba.org>
Sat, 18 Oct 2014 08:23:30 +0000 (10:23 +0200)
committerStefan Metzmacher <metze@samba.org>
Tue, 4 Jun 2019 10:43:20 +0000 (12:43 +0200)
librpc/rpc/binding.c

index 4b3beaecba56a68169199414cd6dc932f3fe6383..db9b77eb95d7455913ed2f5850827bc11dfacfe6 100644 (file)
@@ -371,7 +371,7 @@ static char *dcerpc_binding_string_ex(TALLOC_CTX *mem_ctx,
                }
        }
 
-       for (i=0; b->num_pointers; i++) {
+       for (i=0; i < b->num_pointers; i++) {
                struct dcerpc_binding_pointer *p = b->pointers[i];
                char tsbuf[512];
 
@@ -1133,6 +1133,7 @@ _PUBLIC_ NTSTATUS _dcerpc_binding_set_pointer_option(struct dcerpc_binding *b,
                                                     const char *type,
                                                     const void *pointer)
 {
+       struct dcerpc_binding_pointer *o = NULL;
        struct dcerpc_binding_pointer *p = NULL;
        uint8_t idx;
 
@@ -1204,10 +1205,12 @@ _PUBLIC_ NTSTATUS _dcerpc_binding_set_pointer_option(struct dcerpc_binding *b,
        p->r->p = p;
        talloc_set_destructor(p->r, dcerpc_binding_pointer_ref_destructor);
 
-       TALLOC_FREE(b->pointers[idx]);
-       b->pointers[idx] = p;
        talloc_set_destructor(p, dcerpc_binding_pointer_destructor);
 
+       o = b->pointers[idx];
+       b->pointers[idx] = p;
+       TALLOC_FREE(o);
+
        return NT_STATUS_OK;
 
  nomem: