summaryrefslogtreecommitdiffstats
path: root/source4
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2009-10-20 14:27:57 +1100
committerKarolin Seeger <kseeger@samba.org>2009-11-26 11:39:43 +0100
commit6c3a03e91e0b09dda2fe22fa9b2316bd572217e8 (patch)
tree5786f8b93f9cbdb47cd75b9441dd328a18630679 /source4
parentc1b4ba866542429084bc44de8de5df2e96e4a1b3 (diff)
downloadsamba-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.c19
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;
}