source3/librpc/rpc/dcerpc_ep.c: don't steal off stackframe.
authorRusty Russell <rusty@rustcorp.com.au>
Fri, 29 Jun 2012 06:39:01 +0000 (16:09 +0930)
committerRusty Russell <rusty@rustcorp.com.au>
Fri, 29 Jun 2012 06:39:01 +0000 (16:09 +0930)
There's only one allocation anyway, so just allocate it and clean up
if we fail.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
source3/librpc/rpc/dcerpc_ep.c

index bb080c5fddf237be696f220b28bbfdf043ad4537..b9b0accaf45570e3f6740b184769d6eb2c7770bf 100644 (file)
@@ -53,14 +53,8 @@ NTSTATUS dcerpc_binding_vector_new(TALLOC_CTX *mem_ctx,
 {
        struct dcerpc_binding_vector *bvec;
        NTSTATUS status;
-       TALLOC_CTX *tmp_ctx;
 
-       tmp_ctx = talloc_stackframe();
-       if (tmp_ctx == NULL) {
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       bvec = talloc_zero(tmp_ctx, struct dcerpc_binding_vector);
+       bvec = talloc_zero(mem_ctx, struct dcerpc_binding_vector);
        if (bvec == NULL) {
                status = NT_STATUS_NO_MEMORY;
                goto done;
@@ -70,19 +64,17 @@ NTSTATUS dcerpc_binding_vector_new(TALLOC_CTX *mem_ctx,
                                           struct dcerpc_binding,
                                           4);
        if (bvec->bindings == NULL) {
+               talloc_free(bvec);
                status = NT_STATUS_NO_MEMORY;
                goto done;
        }
 
        bvec->allocated = 4;
        bvec->count = 0;
-
-       *pbvec = talloc_move(mem_ctx, &bvec);
+       *pbvec = bvec;
 
        status = NT_STATUS_OK;
 done:
-       talloc_free(tmp_ctx);
-
        return status;
 }