[SCM] Samba Shared Repository - branch v3-0-test updated - release-3-0-28a-20-ga11835a

Jeremy Allison jra at samba.org
Fri Apr 4 22:28:51 GMT 2008


The branch, v3-0-test has been updated
       via  a11835a3c01aaa6e0a59a78ff7862a8a3910705d (commit)
      from  bfc99dcfe6f592477b8f62adbb1e1a7baec65dcd (commit)

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


- Log -----------------------------------------------------------------
commit a11835a3c01aaa6e0a59a78ff7862a8a3910705d
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Apr 4 15:28:18 2008 -0700

    When using plaintext ucs2 passwords clistr_push calls ucs2_align, which causes
    the space taken by the unicode password to be one byte too
    long (as we're on an odd byte boundary here). Reduce the
    count by 1 to cope with this. Fixes smbclient against NetApp
    servers which can't cope. Fix from
    bryan.kolodziej at allenlund.com in bug #3840.
    Jeremy.

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

Summary of changes:
 source/libsmb/cliconnect.c |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/libsmb/cliconnect.c b/source/libsmb/cliconnect.c
index 42e0b63..ce9e7fa 100644
--- a/source/libsmb/cliconnect.c
+++ b/source/libsmb/cliconnect.c
@@ -249,10 +249,16 @@ static NTSTATUS cli_session_setup_plaintext(struct cli_state *cli,
 	if ( (capabilities & CAP_UNICODE) == 0 ) {
 		p += clistr_push(cli, p, pass, -1, STR_TERMINATE); /* password */
 		SSVAL(cli->outbuf,smb_vwv7,PTR_DIFF(p, smb_buf(cli->outbuf)));
-	}
-	else { 
+	} else {
+		/* For ucs2 passwords clistr_push calls ucs2_align, which causes
+		 * the space taken by the unicode password to be one byte too
+		 * long (as we're on an odd byte boundary here). Reduce the
+		 * count by 1 to cope with this. Fixes smbclient against NetApp
+		 * servers which can't cope. Fix from
+		 * bryan.kolodziej at allenlund.com in bug #3840.
+		 */
 		p += clistr_push(cli, p, pass, -1, STR_UNICODE|STR_TERMINATE); /* unicode password */
-		SSVAL(cli->outbuf,smb_vwv8,PTR_DIFF(p, smb_buf(cli->outbuf)));	
+		SSVAL(cli->outbuf,smb_vwv8,PTR_DIFF(p, smb_buf(cli->outbuf))-1);	
 	}
 	
 	p += clistr_push(cli, p, user, -1, STR_TERMINATE); /* username */
@@ -1026,7 +1032,6 @@ NTSTATUS cli_session_setup(struct cli_state *cli,
 	}
 
 	return NT_STATUS_OK;
-
 }
 
 /****************************************************************************


-- 
Samba Shared Repository


More information about the samba-cvs mailing list