summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Müller <lmuelle@samba.org>2006-02-16 16:45:58 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 11:10:10 -0500
commitb1002863e71c88a2b45528f1271677277d5bd6e0 (patch)
treea90e3e067850a86794b77b07449013824f3780cd
parent394d1aeb8e2922a261efa78d65fc21defde63448 (diff)
downloadsamba-b1002863e71c88a2b45528f1271677277d5bd6e0.tar.gz
samba-b1002863e71c88a2b45528f1271677277d5bd6e0.tar.bz2
samba-b1002863e71c88a2b45528f1271677277d5bd6e0.zip
r13525: 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. (This used to be commit 4272419b1146b1c03e070655f3a31d027c00ad20)
-rw-r--r--source3/utils/pdbedit.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/source3/utils/pdbedit.c b/source3/utils/pdbedit.c
index 1423d9486d..a098039cd0 100644
--- a/source3/utils/pdbedit.c
+++ b/source3/utils/pdbedit.c
@@ -400,6 +400,7 @@ static int new_user (struct pdb_methods *in, const char *username,
SAM_ACCOUNT *sam_pwent=NULL;
char *password1, *password2;
+ int rc_pwd_cmp;
get_global_sam_sid();
@@ -410,22 +411,22 @@ static int new_user (struct pdb_methods *in, const char *username,
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)