From b1002863e71c88a2b45528f1271677277d5bd6e0 Mon Sep 17 00:00:00 2001 From: Lars Müller Date: Thu, 16 Feb 2006 16:45:58 +0000 Subject: 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) --- source3/utils/pdbedit.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'source3') 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) -- cgit