diff options
Diffstat (limited to 'src/gpasswd.c')
-rw-r--r-- | src/gpasswd.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/gpasswd.c b/src/gpasswd.c index 9f0cd195..8959a35a 100644 --- a/src/gpasswd.c +++ b/src/gpasswd.c @@ -32,7 +32,7 @@ #include <config.h> -#ident "$Id: gpasswd.c 3640 2011-11-19 21:51:52Z nekral-guest $" +#ident "$Id$" #include <errno.h> #include <fcntl.h> @@ -898,6 +898,7 @@ static void change_passwd (struct group *gr) char *cp; static char pass[BUFSIZ]; int retries; + const char *salt; /* * A new password is to be entered and it must be encrypted, etc. @@ -938,7 +939,14 @@ static void change_passwd (struct group *gr) exit (1); } - cp = pw_encrypt (pass, crypt_make_salt (NULL, NULL)); + salt = crypt_make_salt (NULL, NULL); + cp = pw_encrypt (pass, salt); + if (NULL == cp) { + fprintf (stderr, + _("%s: failed to crypt password with salt '%s': %s\n"), + Prog, salt, strerror (errno)); + exit (1); + } memzero (pass, sizeof pass); #ifdef SHADOWGRP if (is_shadowgrp) { |