[SCM] Samba Shared Repository - branch v3-3-test updated - release-3-2-0pre2-2984-gb478991

Günther Deschner gd at samba.org
Wed Jun 25 07:51:37 GMT 2008


The branch, v3-3-test has been updated
       via  b47899195e0c190445953243fe80da4e92994dd1 (commit)
      from  a07fe72538e8e724b9736d5a85cc590864c5cab2 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test


- Log -----------------------------------------------------------------
commit b47899195e0c190445953243fe80da4e92994dd1
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jun 25 00:21:37 2008 +0200

    rpc_client: let cli_get_session_key() return talloced session key.
    
    Thanks, Volker, for pointing this out.
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 source/include/proto.h        |    3 ++-
 source/libnet/libnet_dssync.c |    2 +-
 source/rpc_client/cli_pipe.c  |   14 ++++++++++----
 3 files changed, 13 insertions(+), 6 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/include/proto.h b/source/include/proto.h
index 70ab390..1aca7f4 100644
--- a/source/include/proto.h
+++ b/source/include/proto.h
@@ -7130,7 +7130,8 @@ struct rpc_pipe_client *cli_rpc_pipe_open_krb5(struct cli_state *cli,
 						const char *username,
 						const char *password,
 						NTSTATUS *perr);
-NTSTATUS cli_get_session_key(struct rpc_pipe_client *cli,
+NTSTATUS cli_get_session_key(TALLOC_CTX *mem_ctx,
+			     struct rpc_pipe_client *cli,
 			     DATA_BLOB *session_key);
 
 
diff --git a/source/libnet/libnet_dssync.c b/source/libnet/libnet_dssync.c
index 63a5c8b..b1392ac 100644
--- a/source/libnet/libnet_dssync.c
+++ b/source/libnet/libnet_dssync.c
@@ -268,7 +268,7 @@ static NTSTATUS libnet_dssync_process(TALLOC_CTX *mem_ctx,
 			ctr1 = ctr.ctr2.ctr.mszip1.ctr1;
 		}
 
-		status = cli_get_session_key(ctx->cli, &ctx->session_key);
+		status = cli_get_session_key(mem_ctx, ctx->cli, &ctx->session_key);
 		if (!NT_STATUS_IS_OK(status)) {
 			return status;
 		}
diff --git a/source/rpc_client/cli_pipe.c b/source/rpc_client/cli_pipe.c
index 469142d..da81417 100644
--- a/source/rpc_client/cli_pipe.c
+++ b/source/rpc_client/cli_pipe.c
@@ -3341,7 +3341,8 @@ struct rpc_pipe_client *cli_rpc_pipe_open_krb5(struct cli_state *cli,
 #endif
 }
 
-NTSTATUS cli_get_session_key(struct rpc_pipe_client *cli,
+NTSTATUS cli_get_session_key(TALLOC_CTX *mem_ctx,
+			     struct rpc_pipe_client *cli,
 			     DATA_BLOB *session_key)
 {
 	if (!session_key || !cli) {
@@ -3354,15 +3355,20 @@ NTSTATUS cli_get_session_key(struct rpc_pipe_client *cli,
 
 	switch (cli->auth->auth_type) {
 		case PIPE_AUTH_TYPE_SCHANNEL:
-			*session_key = data_blob(cli->auth->a_u.schannel_auth->sess_key, 16);
+			*session_key = data_blob_talloc(mem_ctx,
+				cli->auth->a_u.schannel_auth->sess_key, 16);
 			break;
 		case PIPE_AUTH_TYPE_NTLMSSP:
 		case PIPE_AUTH_TYPE_SPNEGO_NTLMSSP:
-			*session_key = cli->auth->a_u.ntlmssp_state->session_key;
+			*session_key = data_blob_talloc(mem_ctx,
+				cli->auth->a_u.ntlmssp_state->session_key.data,
+				cli->auth->a_u.ntlmssp_state->session_key.length);
 			break;
 		case PIPE_AUTH_TYPE_KRB5:
 		case PIPE_AUTH_TYPE_SPNEGO_KRB5:
-			*session_key = cli->auth->a_u.kerberos_auth->session_key;
+			*session_key = data_blob_talloc(mem_ctx,
+				cli->auth->a_u.kerberos_auth->session_key.data,
+				cli->auth->a_u.kerberos_auth->session_key.length);
 			break;
 		case PIPE_AUTH_TYPE_NONE:
 		default:


-- 
Samba Shared Repository


More information about the samba-cvs mailing list