[SCM] Samba Shared Repository - branch v3-2-test updated - initial-v3-2-test-2613-gffc1c8c

Volker Lendecke vl at samba.org
Thu Feb 28 12:08:51 GMT 2008


The branch, v3-2-test has been updated
       via  ffc1c8cc03e6bad40ed2be91392074b4f038a1bf (commit)
       via  db6ae9ed2326e6cd68475375d049084cf1d5a98c (commit)
      from  5d30e9f9fef98de7764ae53d3cbe659b78ae9fce (commit)

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


- Log -----------------------------------------------------------------
commit ffc1c8cc03e6bad40ed2be91392074b4f038a1bf
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Feb 12 23:16:37 2008 +0100

    Add explicit buf arg to cli_check_sign_mac

commit db6ae9ed2326e6cd68475375d049084cf1d5a98c
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Feb 12 11:54:37 2008 +0100

    Add explicit buf arg to cli_encrypt_message and cli_calculate_sign_mac

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

Summary of changes:
 source/libsmb/cliconnect.c  |    4 ++--
 source/libsmb/clientgen.c   |    7 ++++---
 source/libsmb/smb_seal.c    |    6 +++---
 source/libsmb/smb_signing.c |    8 ++++----
 4 files changed, 13 insertions(+), 12 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/libsmb/cliconnect.c b/source/libsmb/cliconnect.c
index d88a5d6..912b841 100644
--- a/source/libsmb/cliconnect.c
+++ b/source/libsmb/cliconnect.c
@@ -757,9 +757,9 @@ static NTSTATUS cli_session_setup_ntlmssp(struct cli_state *cli, const char *use
 			
 			/* 'resign' the last message, so we get the right sequence numbers
 			   for checking the first reply from the server */
-			cli_calculate_sign_mac(cli);
+			cli_calculate_sign_mac(cli, cli->outbuf);
 			
-			if (!cli_check_sign_mac(cli)) {
+			if (!cli_check_sign_mac(cli, cli->inbuf)) {
 				nt_status = NT_STATUS_ACCESS_DENIED;
 			}
 		}
diff --git a/source/libsmb/clientgen.c b/source/libsmb/clientgen.c
index 3b7669f..ccd1cc6 100644
--- a/source/libsmb/clientgen.c
+++ b/source/libsmb/clientgen.c
@@ -164,7 +164,7 @@ bool cli_receive_smb(struct cli_state *cli)
 		return false;
 	}
 
-	if (!cli_check_sign_mac(cli)) {
+	if (!cli_check_sign_mac(cli, cli->inbuf)) {
 		/*
 		 * If we get a signature failure in sessionsetup, then
 		 * the server sometimes just reflects the sent signature
@@ -343,10 +343,11 @@ bool cli_send_smb(struct cli_state *cli)
 	if (cli->fd == -1)
 		return false;
 
-	cli_calculate_sign_mac(cli);
+	cli_calculate_sign_mac(cli, cli->outbuf);
 
 	if (enc_on) {
-		NTSTATUS status = cli_encrypt_message(cli, &buf_out);
+		NTSTATUS status = cli_encrypt_message(cli, cli->outbuf,
+						      &buf_out);
 		if (!NT_STATUS_IS_OK(status)) {
 			close(cli->fd);
 			cli->fd = -1;
diff --git a/source/libsmb/smb_seal.c b/source/libsmb/smb_seal.c
index b5befbf..a81ae9a 100644
--- a/source/libsmb/smb_seal.c
+++ b/source/libsmb/smb_seal.c
@@ -483,15 +483,15 @@ NTSTATUS cli_decrypt_message(struct cli_state *cli)
  Encrypt an outgoing buffer. Return the encrypted pointer in buf_out.
 ******************************************************************************/
 
-NTSTATUS cli_encrypt_message(struct cli_state *cli, char **buf_out)
+NTSTATUS cli_encrypt_message(struct cli_state *cli, char *buf, char **buf_out)
 {
 	/* Ignore non-session messages. */
-	if(CVAL(cli->outbuf,0)) {
+	if (CVAL(buf,0)) {
 		return NT_STATUS_OK;
 	}
 
 	/* If we supported multiple encrytion contexts
 	 * here we'd look up based on tid.
 	 */
-	return common_encrypt_buffer(cli->trans_enc_state, cli->outbuf, buf_out);
+	return common_encrypt_buffer(cli->trans_enc_state, buf, buf_out);
 }
diff --git a/source/libsmb/smb_signing.c b/source/libsmb/smb_signing.c
index f03c21b..bd6d971 100644
--- a/source/libsmb/smb_signing.c
+++ b/source/libsmb/smb_signing.c
@@ -573,9 +573,9 @@ void cli_free_signing_context(struct cli_state *cli)
  * Sign a packet with the current mechanism
  */
  
-void cli_calculate_sign_mac(struct cli_state *cli)
+void cli_calculate_sign_mac(struct cli_state *cli, char *buf)
 {
-	cli->sign_info.sign_outgoing_message(cli->outbuf, &cli->sign_info);
+	cli->sign_info.sign_outgoing_message(buf, &cli->sign_info);
 }
 
 /**
@@ -584,9 +584,9 @@ void cli_calculate_sign_mac(struct cli_state *cli)
  *         which had a bad checksum, True otherwise.
  */
  
-bool cli_check_sign_mac(struct cli_state *cli) 
+bool cli_check_sign_mac(struct cli_state *cli, char *buf)
 {
-	if (!cli->sign_info.check_incoming_message(cli->inbuf, &cli->sign_info, True)) {
+	if (!cli->sign_info.check_incoming_message(buf, &cli->sign_info, True)) {
 		free_signing_context(&cli->sign_info);	
 		return False;
 	}


-- 
Samba Shared Repository


More information about the samba-cvs mailing list