diff options
author | Lars Müller <lmuelle@samba.org> | 2006-02-16 16:45:58 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 11:10:10 -0500 |
commit | b1002863e71c88a2b45528f1271677277d5bd6e0 (patch) | |
tree | a90e3e067850a86794b77b07449013824f3780cd | |
parent | 394d1aeb8e2922a261efa78d65fc21defde63448 (diff) | |
download | samba-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.c | 17 |
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) |