From: Noel Power Date: Fri, 15 Apr 2016 11:42:06 +0000 (+0100) Subject: fix Invalid read of size 8 X-Git-Tag: talloc-2.1.7~145 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=39bbd40cda3d37e32f2ef1d1a4199cda3a075417;p=thirdparty%2Fsamba.git fix Invalid read of size 8 running rpc.dsgetinfo.DsGetReplicaInfo results in the following valgrind trace ==14966== Invalid read of size 8 ==14966== at 0x88B2D5D: dcerpc_binding_handle_call (binding_handle.c:538) ==14966== by 0x978F33B: dcerpc_drsuapi_DsUnbind_r (ndr_drsuapi_c.c:319) ==14966== by 0x2E9F19: torture_dsgetinfo_tcase_teardown (dsgetinfo.c:431) ==14966== by 0x95536EF: internal_torture_run_test (torture.c:452) ==14966== by 0x9553A4B: torture_run_test_restricted (torture.c:542) ==14966== by 0x260074: run_matching (smbtorture.c:110) ==14966== by 0x25FF36: run_matching (smbtorture.c:95) ==14966== by 0x260195: torture_run_named_tests (smbtorture.c:143) ==14966== by 0x261E14: main (smbtorture.c:665) ==14966== Address 0x28 is not stack'd, malloc'd or (recently) free'd ==14966== Signed-off-by: Noel Power Reviewed-by: Volker Lendecke Reviewed-by: Andreas Schneider Autobuild-User(master): Andreas Schneider Autobuild-Date(master): Mon Apr 25 14:01:33 CEST 2016 on sn-devel-144 --- diff --git a/source4/torture/rpc/dsgetinfo.c b/source4/torture/rpc/dsgetinfo.c index bbe7a3b0ea5..00dfc69e208 100644 --- a/source4/torture/rpc/dsgetinfo.c +++ b/source4/torture/rpc/dsgetinfo.c @@ -428,7 +428,10 @@ static bool torture_dsgetinfo_tcase_teardown(struct torture_context *tctx, void /* Unbing admin handle */ r.in.bind_handle = &ctx->admin.drsuapi.bind_handle; - dcerpc_drsuapi_DsUnbind_r(ctx->admin.drsuapi.drs_handle, ctx, &r); + if (ctx->admin.drsuapi.drs_handle) { + dcerpc_drsuapi_DsUnbind_r(ctx->admin.drsuapi.drs_handle, + ctx, &r); + } talloc_free(ctx);