s4:libnet: pass an explicit mem_ctx to libnet_rpc_userinfo_send() (bug #8889)
authorStefan Metzmacher <metze@samba.org>
Tue, 24 Apr 2012 11:49:52 +0000 (13:49 +0200)
committerStefan Metzmacher <metze@samba.org>
Tue, 24 Apr 2012 14:43:03 +0000 (16:43 +0200)
This hopefully fixes the flakey autobuild.

metze

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Tue Apr 24 16:43:03 CEST 2012 on sn-devel-104

source4/libnet/libnet_user.c
source4/libnet/userinfo.c
source4/torture/libnet/userinfo.c

index dc0691ac22951b81f8ea033e153e169fecd6e9f3..eef480af4ad86dae0fb7dedb191d5ef97a514ab0 100644 (file)
@@ -423,7 +423,7 @@ struct composite_context *libnet_ModifyUser_send(struct libnet_context *ctx,
        s->user_info.in.domain_handle = ctx->samr.handle;
        s->user_info.in.level         = level;
 
-       userinfo_req = libnet_rpc_userinfo_send(ctx->samr.pipe, &s->user_info, monitor);
+       userinfo_req = libnet_rpc_userinfo_send(ctx->samr.pipe, s, &s->user_info, monitor);
        if (composite_nomem(userinfo_req, c)) return c;
 
        composite_continue(c, userinfo_req, continue_rpc_userinfo, c);
@@ -455,7 +455,7 @@ static void continue_domain_open_modify(struct composite_context *ctx)
        s->user_info.in.username       = s->r.in.user_name;
        s->user_info.in.level          = level;
 
-       userinfo_req = libnet_rpc_userinfo_send(s->ctx->samr.pipe, &s->user_info, s->monitor_fn);
+       userinfo_req = libnet_rpc_userinfo_send(s->ctx->samr.pipe, s, &s->user_info, s->monitor_fn);
        if (composite_nomem(userinfo_req, c)) return;
        
        composite_continue(c, userinfo_req, continue_rpc_userinfo, c);
@@ -687,6 +687,7 @@ struct composite_context* libnet_UserInfo_send(struct libnet_context *ctx,
 
                /* send the request */
                info_req = libnet_rpc_userinfo_send(s->ctx->samr.pipe,
+                                                   s,
                                                    &s->userinfo,
                                                    s->monitor_fn);
                if (composite_nomem(info_req, c)) return c;
@@ -743,6 +744,7 @@ static void continue_domain_open_info(struct composite_context *ctx)
 
                /* send the request */
                info_req = libnet_rpc_userinfo_send(s->ctx->samr.pipe,
+                                                   s,
                                                    &s->userinfo,
                                                    s->monitor_fn);
                if (composite_nomem(info_req, c)) return;
@@ -782,7 +784,7 @@ static void continue_name_found(struct composite_context *ctx)
        s->userinfo.in.level = 21;
 
        /* send the request */
-       info_req = libnet_rpc_userinfo_send(s->ctx->samr.pipe, &s->userinfo, s->monitor_fn);
+       info_req = libnet_rpc_userinfo_send(s->ctx->samr.pipe, s, &s->userinfo, s->monitor_fn);
        if (composite_nomem(info_req, c)) return;
 
        /* set the next stage */
index ddb249ee96c3923ab71d38a464330a31f8c4444f..75c46e477d784f6aaa1a085707d1a1216c8a3224 100644 (file)
@@ -260,6 +260,7 @@ static void continue_userinfo_closeuser(struct tevent_req *subreq)
  * @param io arguments and results of the call
  */
 struct composite_context *libnet_rpc_userinfo_send(struct dcerpc_pipe *p,
+                                                  TALLOC_CTX *mem_ctx,
                                                   struct libnet_rpc_userinfo *io,
                                                   void (*monitor)(struct monitor_msg*))
 {
@@ -270,7 +271,7 @@ struct composite_context *libnet_rpc_userinfo_send(struct dcerpc_pipe *p,
 
        if (!p || !io) return NULL;
        
-       c = composite_create(p, dcerpc_event_context(p));
+       c = composite_create(mem_ctx, dcerpc_event_context(p));
        if (c == NULL) return c;
        
        s = talloc_zero(c, struct userinfo_state);
@@ -370,6 +371,6 @@ NTSTATUS libnet_rpc_userinfo(struct dcerpc_pipe *p,
                             TALLOC_CTX *mem_ctx,
                             struct libnet_rpc_userinfo *io)
 {
-       struct composite_context *c = libnet_rpc_userinfo_send(p, io, NULL);
+       struct composite_context *c = libnet_rpc_userinfo_send(p, mem_ctx, io, NULL);
        return libnet_rpc_userinfo_recv(c, mem_ctx, io);
 }
index 042212f4aabbe715e96a0626c5228986bfa150e1..3d592b3de7e24d0b0f2130fd453b3218cbe7837a 100644 (file)
@@ -85,7 +85,7 @@ static bool test_userinfo_async(struct torture_context *tctx,
 
        torture_comment(tctx, "Testing async libnet_rpc_userinfo (SID argument)\n");
 
-       c = libnet_rpc_userinfo_send(p, &user, msg_handler);
+       c = libnet_rpc_userinfo_send(p, mem_ctx, &user, msg_handler);
        torture_assert(tctx, c != NULL, "Failed to call async libnet_rpc_userinfo_send");
 
        status = libnet_rpc_userinfo_recv(c, mem_ctx, &user);
@@ -100,7 +100,7 @@ static bool test_userinfo_async(struct torture_context *tctx,
 
        torture_comment(tctx, "Testing async libnet_rpc_userinfo (username argument)\n");
 
-       c = libnet_rpc_userinfo_send(p, &user, msg_handler);
+       c = libnet_rpc_userinfo_send(p, mem_ctx, &user, msg_handler);
        torture_assert(tctx, c != NULL, "Failed to call async libnet_rpc_userinfo_send");
 
        status = libnet_rpc_userinfo_recv(c, mem_ctx, &user);