From 39bbd40cda3d37e32f2ef1d1a4199cda3a075417 Mon Sep 17 00:00:00 2001 From: Noel Power Date: Fri, 15 Apr 2016 12:42:06 +0100 Subject: [PATCH] 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 --- source4/torture/rpc/dsgetinfo.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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); -- 2.11.4.GIT