diff options
-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) |