svn commit: samba r13525 - branches/SAMBA_3_0/source/utils trunk/source/utils

lmuelle at samba.org lmuelle at samba.org
Thu Feb 16 16:45:59 GMT 2006


Author: lmuelle
Date: 2006-02-16 16:45:58 +0000 (Thu, 16 Feb 2006)
New Revision: 13525

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=13525

Log:
This is only a cleanup to have the memset() and SAFE_FREE() only one
time in the code.

Even if we now have an additional if statement after the free I prefer
this solution in opposite to the duplicated code we had before.

Modified:
   branches/SAMBA_3_0/source/utils/pdbedit.c
   trunk/source/utils/pdbedit.c


Changeset:
Modified: branches/SAMBA_3_0/source/utils/pdbedit.c
===================================================================
--- branches/SAMBA_3_0/source/utils/pdbedit.c	2006-02-16 16:22:44 UTC (rev 13524)
+++ branches/SAMBA_3_0/source/utils/pdbedit.c	2006-02-16 16:45:58 UTC (rev 13525)
@@ -400,6 +400,7 @@
 	SAM_ACCOUNT *sam_pwent=NULL;
 
 	char *password1, *password2;
+	int rc_pwd_cmp;
 
 	get_global_sam_sid();
 
@@ -410,22 +411,22 @@
 
 	password1 = get_pass( "new password:", stdin_get);
 	password2 = get_pass( "retype new password:", stdin_get);
-	if (strcmp (password1, password2)) {
-		fprintf (stderr, "Passwords does not match!\n");
-		memset(password1, 0, strlen(password1));
-		SAFE_FREE(password1);
-		memset(password2, 0, strlen(password2));
-		SAFE_FREE(password2);
+	if ((rc_pwd_cmp = strcmp (password1, password2))) {
+		fprintf (stderr, "Passwords do not match!\n");
 		pdb_free_sam (&sam_pwent);
-		return -1;
+	} else {
+		pdb_set_plaintext_passwd(sam_pwent, password1);
 	}
 
-	pdb_set_plaintext_passwd(sam_pwent, password1);
 	memset(password1, 0, strlen(password1));
 	SAFE_FREE(password1);
 	memset(password2, 0, strlen(password2));
 	SAFE_FREE(password2);
 
+	/* pwds do _not_ match? */
+	if (rc_pwd_cmp)
+		return -1;
+
 	if (fullname)
 		pdb_set_fullname(sam_pwent, fullname, PDB_CHANGED);
 	if (homedir)

Modified: trunk/source/utils/pdbedit.c
===================================================================
--- trunk/source/utils/pdbedit.c	2006-02-16 16:22:44 UTC (rev 13524)
+++ trunk/source/utils/pdbedit.c	2006-02-16 16:45:58 UTC (rev 13525)
@@ -400,6 +400,7 @@
 	SAM_ACCOUNT *sam_pwent=NULL;
 
 	char *password1, *password2;
+	int rc_pwd_cmp;
 
 	get_global_sam_sid();
 
@@ -410,22 +411,22 @@
 
 	password1 = get_pass( "new password:", stdin_get);
 	password2 = get_pass( "retype new password:", stdin_get);
-	if (strcmp (password1, password2)) {
-		fprintf (stderr, "Passwords does not match!\n");
-		memset(password1, 0, strlen(password1));
-		SAFE_FREE(password1);
-		memset(password2, 0, strlen(password2));
-		SAFE_FREE(password2);
+	if ((rc_pwd_cmp = strcmp (password1, password2))) {
+		fprintf (stderr, "Passwords do not match!\n");
 		pdb_free_sam (&sam_pwent);
-		return -1;
+	} else {
+		pdb_set_plaintext_passwd(sam_pwent, password1);
 	}
 
-	pdb_set_plaintext_passwd(sam_pwent, password1);
 	memset(password1, 0, strlen(password1));
 	SAFE_FREE(password1);
 	memset(password2, 0, strlen(password2));
 	SAFE_FREE(password2);
 
+	/* pwds do _not_ match? */
+	if (rc_pwd_cmp)
+		return -1;
+
 	if (fullname)
 		pdb_set_fullname(sam_pwent, fullname, PDB_CHANGED);
 	if (homedir)



More information about the samba-cvs mailing list