[SCM] Samba Shared Repository - branch v3-2-test updated - initial-v3-2-unstable-315-g72c19d1

Jeremy Allison jra at samba.org
Wed Nov 14 18:37:48 GMT 2007


The branch, v3-2-test has been updated
       via  72c19d114b40ee307bbe45d9828667165a26d7a3 (commit)
      from  d6e2519c67fd015e1089021769de04085fd90894 (commit)

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


- Log -----------------------------------------------------------------
commit 72c19d114b40ee307bbe45d9828667165a26d7a3
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Nov 14 10:37:18 2007 -0800

    Remove pstring from auth/*
    Jeremy.

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

Summary of changes:
 source/auth/auth_util.c  |   52 +++++++++++++++++++++++++++++++++------------
 source/auth/pass_check.c |    7 ++++-
 2 files changed, 43 insertions(+), 16 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/auth/auth_util.c b/source/auth/auth_util.c
index 99eea6c..7ef8942 100644
--- a/source/auth/auth_util.c
+++ b/source/auth/auth_util.c
@@ -32,20 +32,44 @@
 
 static int smb_create_user(const char *domain, const char *unix_username, const char *homedir)
 {
-	pstring add_script;
+	TALLOC_CTX *ctx = talloc_tos();
+	char *add_script;
 	int ret;
 
-	pstrcpy(add_script, lp_adduser_script());
-	if (! *add_script)
+	add_script = talloc_strdup(ctx, lp_adduser_script());
+	if (!add_script || !*add_script) {
 		return -1;
-	all_string_sub(add_script, "%u", unix_username, sizeof(pstring));
-	if (domain)
-		all_string_sub(add_script, "%D", domain, sizeof(pstring));
-	if (homedir)
-		all_string_sub(add_script, "%H", homedir, sizeof(pstring));
+	}
+	add_script = talloc_all_string_sub(ctx,
+				add_script,
+				"%u",
+				unix_username);
+	if (!add_script) {
+		return -1;
+	}
+	if (domain) {
+		add_script = talloc_all_string_sub(ctx,
+					add_script,
+					"%D",
+					domain);
+		if (!add_script) {
+			return -1;
+		}
+	}
+	if (homedir) {
+		add_script = talloc_all_string_sub(ctx,
+				add_script,
+				"%H",
+				homedir);
+		if (!add_script) {
+			return -1;
+		}
+	}
 	ret = smbrun(add_script,NULL);
 	flush_pwnam_cache();
-	DEBUG(ret ? 0 : 3,("smb_create_user: Running the command `%s' gave %d\n",add_script,ret));
+	DEBUG(ret ? 0 : 3,
+		("smb_create_user: Running the command `%s' gave %d\n",
+		 add_script,ret));
 	return ret;
 }
 
@@ -53,15 +77,15 @@ static int smb_create_user(const char *domain, const char *unix_username, const
  Create an auth_usersupplied_data structure
 ****************************************************************************/
 
-static NTSTATUS make_user_info(auth_usersupplied_info **user_info, 
-                               const char *smb_name, 
+static NTSTATUS make_user_info(auth_usersupplied_info **user_info,
+                               const char *smb_name,
                                const char *internal_username,
-                               const char *client_domain, 
+                               const char *client_domain,
                                const char *domain,
-                               const char *wksta_name, 
+                               const char *wksta_name,
                                DATA_BLOB *lm_pwd, DATA_BLOB *nt_pwd,
                                DATA_BLOB *lm_interactive_pwd, DATA_BLOB *nt_interactive_pwd,
-                               DATA_BLOB *plaintext, 
+                               DATA_BLOB *plaintext,
                                bool encrypted)
 {
 
diff --git a/source/auth/pass_check.c b/source/auth/pass_check.c
index 8773804..27915bf 100644
--- a/source/auth/pass_check.c
+++ b/source/auth/pass_check.c
@@ -599,7 +599,7 @@ return NT_STATUS_OK on correct match, appropriate error otherwise
 NTSTATUS pass_check(const struct passwd *pass, const char *user, const char *password, 
 		    int pwlen, bool (*fn) (const char *, const char *), bool run_cracker)
 {
-	pstring pass2;
+	char *pass2 = NULL;
 	int level = lp_passwordlevel();
 
 	NTSTATUS nt_status;
@@ -758,7 +758,10 @@ NTSTATUS pass_check(const struct passwd *pass, const char *user, const char *pas
 	}
 
 	/* make a copy of it */
-	pstrcpy(pass2, password);
+	pass2 = talloc_strdup(talloc_tos(), password);
+	if (!pass2) {
+		return NT_STATUS_NO_MEMORY;
+	}
 
 	/* try all lowercase if it's currently all uppercase */
 	if (strhasupper(pass2)) {


-- 
Samba Shared Repository


More information about the samba-cvs mailing list