summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2014-01-14 12:11:17 +0100
committerGünther Deschner <gd@samba.org>2014-01-16 16:22:51 +0100
commit7a97662bb53e8b048a02fec79d167f2466f4233f (patch)
tree6a8ab73228a47b580f0afe115cbfb2928a21fdfd
parent1c6a2f8bca06d34fd14f498a09948875ad049d7c (diff)
downloadsamba-7a97662bb53e8b048a02fec79d167f2466f4233f.tar.gz
s4:libnet: let libnet_rpc_groupadd() take tevent_context/dcerpc_binding_handle
This avoids usage/dereferencing 'struct dcerpc_pipe'. Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Guenther Deschner <gd@samba.org>
-rw-r--r--source4/libnet/groupman.c7
-rw-r--r--source4/torture/libnet/groupman.c10
2 files changed, 11 insertions, 6 deletions
diff --git a/source4/libnet/groupman.c b/source4/libnet/groupman.c
index 60b6aeb6b31..0bd7320ead5 100644
--- a/source4/libnet/groupman.c
+++ b/source4/libnet/groupman.c
@@ -127,13 +127,14 @@ static void continue_groupadd_created(struct tevent_req *subreq)
}
-NTSTATUS libnet_rpc_groupadd(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+NTSTATUS libnet_rpc_groupadd(struct tevent_context *ev,
+ struct dcerpc_binding_handle *b,
+ TALLOC_CTX *mem_ctx,
struct libnet_rpc_groupadd *io)
{
struct composite_context *c;
- c = libnet_rpc_groupadd_send(mem_ctx, p->conn->event_ctx,
- p->binding_handle, io, NULL);
+ c = libnet_rpc_groupadd_send(mem_ctx, ev, b, io, NULL);
return libnet_rpc_groupadd_recv(c, mem_ctx, io);
}
diff --git a/source4/torture/libnet/groupman.c b/source4/torture/libnet/groupman.c
index 9ee3dc26fbc..8cd49db16cb 100644
--- a/source4/torture/libnet/groupman.c
+++ b/source4/torture/libnet/groupman.c
@@ -27,7 +27,8 @@
#include "torture/libnet/proto.h"
-static bool test_groupadd(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_groupadd(struct torture_context *tctx,
+ struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
struct policy_handle *domain_handle,
const char *name)
{
@@ -35,12 +36,15 @@ static bool test_groupadd(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
bool ret = true;
struct libnet_rpc_groupadd group;
+ ZERO_STRUCT(group);
+
group.in.domain_handle = *domain_handle;
group.in.groupname = name;
printf("Testing libnet_rpc_groupadd\n");
- status = libnet_rpc_groupadd(p, mem_ctx, &group);
+ status = libnet_rpc_groupadd(tctx->ev, p->binding_handle,
+ mem_ctx, &group);
if (!NT_STATUS_IS_OK(status)) {
printf("Failed to call sync libnet_rpc_groupadd - %s\n", nt_errstr(status));
return false;
@@ -77,7 +81,7 @@ bool torture_groupadd(struct torture_context *torture)
goto done;
}
- if (!test_groupadd(p, mem_ctx, &h, name)) {
+ if (!test_groupadd(torture, p, mem_ctx, &h, name)) {
ret = false;
goto done;
}