]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - src/patches/samba/3-samba.git-2d0424e7bb2c30bf9049529b207c73b55370dfc8.patch
samba: import rpc server and client fixes.
[ipfire-2.x.git] / src / patches / samba / 3-samba.git-2d0424e7bb2c30bf9049529b207c73b55370dfc8.patch
diff --git a/src/patches/samba/3-samba.git-2d0424e7bb2c30bf9049529b207c73b55370dfc8.patch b/src/patches/samba/3-samba.git-2d0424e7bb2c30bf9049529b207c73b55370dfc8.patch
new file mode 100644 (file)
index 0000000..75aedd8
--- /dev/null
@@ -0,0 +1,58 @@
+From 2d0424e7bb2c30bf9049529b207c73b55370dfc8 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Tue, 10 Jan 2012 16:38:16 +0100
+Subject: [PATCH] s3-rpc_client: Fix updating netlogon credentials.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Günther Deschner <gd@samba.org>
+(cherry picked from commit 33206b1e240e55acedad606aed4f1952f7496b35)
+---
+ source3/rpc_client/cli_pipe.c | 15 +++++++--------
+ 1 file changed, 7 insertions(+), 8 deletions(-)
+
+diff --git a/source3/rpc_client/cli_pipe.c b/source3/rpc_client/cli_pipe.c
+index a211d92..92ca494 100644
+--- a/source3/rpc_client/cli_pipe.c
++++ b/source3/rpc_client/cli_pipe.c
+@@ -2128,9 +2128,6 @@ static void rpc_pipe_bind_step_two_done(struct tevent_req *subreq)
+       struct rpc_pipe_bind_state *state =
+               tevent_req_data(req,
+                               struct rpc_pipe_bind_state);
+-      struct schannel_state *schannel_auth =
+-              talloc_get_type_abort(state->cli->auth->auth_ctx,
+-                                    struct schannel_state);
+       NTSTATUS status;
+       status = dcerpc_netr_LogonGetCapabilities_r_recv(subreq, talloc_tos());
+@@ -2188,8 +2185,8 @@ static void rpc_pipe_bind_step_two_done(struct tevent_req *subreq)
+               return;
+       }
+-      TALLOC_FREE(schannel_auth->creds);
+-      schannel_auth->creds = talloc_steal(state->cli, state->creds);
++      TALLOC_FREE(state->cli->dc);
++      state->cli->dc = talloc_steal(state->cli, state->creds);
+       if (!NT_STATUS_IS_OK(state->r.out.result)) {
+               DEBUG(0, ("dcerpc_netr_LogonGetCapabilities_r_recv failed with %s\n",
+@@ -3385,10 +3382,12 @@ NTSTATUS cli_rpc_pipe_open_schannel_with_key(struct cli_state *cli,
+        * The credentials on a new netlogon pipe are the ones we are passed
+        * in - copy them over
+        */
+-      result->dc = netlogon_creds_copy(result, *pdc);
+       if (result->dc == NULL) {
+-              TALLOC_FREE(result);
+-              return NT_STATUS_NO_MEMORY;
++              result->dc = netlogon_creds_copy(result, *pdc);
++              if (result->dc == NULL) {
++                      TALLOC_FREE(result);
++                      return NT_STATUS_NO_MEMORY;
++              }
+       }
+       DEBUG(10,("cli_rpc_pipe_open_schannel_with_key: opened pipe %s to machine %s "
+-- 
+1.9.1
+