[SCM] Samba Shared Repository - branch v3-2-test updated - initial-v3-2-unstable-293-g9ed12bf

Jeremy Allison jra at samba.org
Sat Nov 10 23:45:05 GMT 2007


The branch, v3-2-test has been updated
       via  9ed12bfc48fe7f9b1863a9dd88e881974083053c (commit)
      from  63125225383f512f43002b9a92569d4b8f1b63bd (commit)

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


- Log -----------------------------------------------------------------
commit 9ed12bfc48fe7f9b1863a9dd88e881974083053c
Author: Jeremy Allison <jra at samba.org>
Date:   Sat Nov 10 15:36:47 2007 -0800

    Remove last pstring from sesssetup.c
    Jeremy.

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

Summary of changes:
 source/smbd/sesssetup.c |   40 +++++++++++++++++++++-------------------
 1 files changed, 21 insertions(+), 19 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/smbd/sesssetup.c b/source/smbd/sesssetup.c
index 0e8483c..8ca012f 100644
--- a/source/smbd/sesssetup.c
+++ b/source/smbd/sesssetup.c
@@ -1491,30 +1491,32 @@ void reply_sesssetup_and_X(connection_struct *conn, struct smb_request *req)
 			lm_resp = data_blob(p, passlen1);
 			nt_resp = data_blob(p+passlen1, passlen2);
 		} else {
-			pstring pass;
+			char *pass = NULL;
 			bool unic= smb_flag2 & FLAGS2_UNICODE_STRINGS;
 
-#if 0
-			/* This was the previous fix. Not sure if it's still
-			 * valid. JRA. */
-			if ((ra_type == RA_WINNT) && (passlen2 == 0)
-					&& unic && passlen1) {
-				/* NT4.0 stuffs up plaintext unicode password
-				 * lengths... */
-				srvstr_pull(inbuf, pass, smb_buf(inbuf) + 1,
-					sizeof(pass), passlen1, STR_TERMINATE);
-#endif
-
 			if (unic && (passlen2 == 0) && passlen1) {
 				/* Only a ascii plaintext password was sent. */
-				srvstr_pull(req->inbuf, req->flags2, pass,
-					    smb_buf(req->inbuf), sizeof(pass),
-					    passlen1, STR_TERMINATE|STR_ASCII);
+				(void)srvstr_pull_talloc(talloc_tos(),
+							req->inbuf,
+							req->flags2,
+							&pass,
+							smb_buf(req->inbuf),
+							passlen1,
+							STR_TERMINATE|STR_ASCII);
 			} else {
-				srvstr_pull(req->inbuf, req->flags2, pass,
-					    smb_buf(req->inbuf), sizeof(pass),
-					    unic ? passlen2 : passlen1,
-					    STR_TERMINATE);
+				(void)srvstr_pull_talloc(talloc_tos(),
+							req->inbuf,
+							req->flags2,
+							&pass,
+							smb_buf(req->inbuf),
+							unic ? passlen2 : passlen1,
+							STR_TERMINATE);
+			}
+			if (!pass) {
+				reply_nterror(req, nt_status_squash(
+					      NT_STATUS_INVALID_PARAMETER));
+				END_PROFILE(SMBsesssetupX);
+				return;
 			}
 			plaintext_password = data_blob(pass, strlen(pass)+1);
 		}


-- 
Samba Shared Repository


More information about the samba-cvs mailing list