diff options
author | Andrew Tridgell <tridge@samba.org> | 2009-10-20 14:27:57 +1100 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2009-11-26 11:39:43 +0100 |
commit | 6c3a03e91e0b09dda2fe22fa9b2316bd572217e8 (patch) | |
tree | 5786f8b93f9cbdb47cd75b9441dd328a18630679 /source4 | |
parent | c1b4ba866542429084bc44de8de5df2e96e4a1b3 (diff) | |
download | samba-6c3a03e91e0b09dda2fe22fa9b2316bd572217e8.tar.gz samba-6c3a03e91e0b09dda2fe22fa9b2316bd572217e8.tar.xz samba-6c3a03e91e0b09dda2fe22fa9b2316bd572217e8.zip |
s4-torture: fixed a fd/mem leak in the RPC-LSA-SECRETS test
This test left a large number of lsa pipes open, which could trigger
the server running out of fds
(cherry picked from commit 9f68deb48c7264c89f7f235306ef0f14dcfc6865)
Diffstat (limited to 'source4')
-rw-r--r-- | source4/torture/rpc/session_key.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/source4/torture/rpc/session_key.c b/source4/torture/rpc/session_key.c index 431897ac777..1d3199944d9 100644 --- a/source4/torture/rpc/session_key.c +++ b/source4/torture/rpc/session_key.c @@ -148,6 +148,7 @@ static bool test_secrets(struct torture_context *torture, const void *_data) struct dcerpc_binding *binding; const struct secret_settings *settings = (const struct secret_settings *)_data; + NTSTATUS status; lp_set_cmdline(torture->lp_ctx, "ntlmssp client:keyexchange", settings->keyexchange?"True":"False"); lp_set_cmdline(torture->lp_ctx, "ntlmssp_client:ntlm2", settings->ntlm2?"True":"False"); @@ -158,24 +159,28 @@ static bool test_secrets(struct torture_context *torture, const void *_data) binding->flags |= settings->bindoptions; - torture_assert_ntstatus_ok(torture, - dcerpc_pipe_connect_b(torture, &p, binding, - &ndr_table_lsarpc, - cmdline_credentials, - torture->ev, - torture->lp_ctx), - "connect"); + status = dcerpc_pipe_connect_b(torture, &p, binding, + &ndr_table_lsarpc, + cmdline_credentials, + torture->ev, + torture->lp_ctx); + + torture_assert_ntstatus_ok(torture, status, "connect"); if (!test_lsa_OpenPolicy2(p, torture, &handle)) { + talloc_free(p); return false; } torture_assert(torture, handle, "OpenPolicy2 failed. This test cannot run against this server"); if (!test_CreateSecret_basic(p, torture, handle)) { + talloc_free(p); return false; } + talloc_free(p); + return true; } |