Signed-off-by: Karel Zak <kzak@redhat.com>
{
char **look;
int notfound = 1;
- char *pwd, *xpwd;
+ char *pwd, *xpwd, *spwd;
if (getuid() == 0)
/* root may do anything */
* as in /etc/passwd */
/* check /etc/gshadow */
- if (!(pwd = get_gshadow_pwd(ge->gr_name)))
- pwd = ge->gr_passwd;
+ spwd = get_gshadow_pwd(ge->gr_name);
+ pwd = spwd ? spwd : ge->gr_passwd;
if (pwd && *pwd && (xpwd = xgetpass(stdin, _("Password: ")))) {
char *cbuf = crypt(xpwd, pwd);
return TRUE;
}
+ free(spwd);
+
/* default to denial */
return FALSE;
}