aboutsummaryrefslogtreecommitdiff
path: root/libshouldbeinlibc/idvec-verify.c
diff options
context:
space:
mode:
authorThomas Bushnell <thomas@gnu.org>1999-04-26 01:40:11 +0000
committerThomas Bushnell <thomas@gnu.org>1999-04-26 01:40:11 +0000
commit6ac4feb602d86010c815100e2b02a8ec60d01929 (patch)
treea4ab86f29ebb7bc063dc3a205dac65cbf8c74dd7 /libshouldbeinlibc/idvec-verify.c
parentd4f6b14d4efded20df1eae0a2f027ff55b0fb5d2 (diff)
downloadhurd-6ac4feb602d86010c815100e2b02a8ec60d01929.tar.gz
hurd-6ac4feb602d86010c815100e2b02a8ec60d01929.tar.bz2
hurd-6ac4feb602d86010c815100e2b02a8ec60d01929.zip
1998-12-21 Mark Kettenis <kettenis@phys.uva.nl>
* ugids-verify-auth.c: Include <hurd/password.h> again and remove temporary definitions of password_check_user and password_check_group. 1998-11-29 Mark Kettenis <kettenis@phys.uva.nl> * idvec-verify.c (verify_passwd): Grant access when the password in the passwd DB is empty. (verify_id): Also call verify_fn when the password in the password DB is empty.
Diffstat (limited to 'libshouldbeinlibc/idvec-verify.c')
-rw-r--r--libshouldbeinlibc/idvec-verify.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/libshouldbeinlibc/idvec-verify.c b/libshouldbeinlibc/idvec-verify.c
index 11ab2c22..bee4376f 100644
--- a/libshouldbeinlibc/idvec-verify.c
+++ b/libshouldbeinlibc/idvec-verify.c
@@ -65,6 +65,9 @@ verify_passwd (const char *password,
? ((struct passwd *)pwd_or_grp)->pw_passwd
: ((struct group *)pwd_or_grp)->gr_passwd);
+ if (sys_encrypted && !*sys_encrypted)
+ return 0; /* No password. */
+
if (crypt)
/* Encrypt the password entered by the user (SYS_ENCRYPTED is the salt). */
encrypted = crypt (password, sys_encrypted);
@@ -232,6 +235,9 @@ verify_id (uid_t id, int is_group, int multiple,
char *prompt = 0, *password;
char id_lookup_buf[1024];
+ /* VERIFY_FN should have been defaulted in idvec_verify if necessary. */
+ assert (verify_fn);
+
if (id >= 0)
do
{
@@ -242,7 +248,7 @@ verify_id (uid_t id, int is_group, int multiple,
== 0)
{
if (!gr->gr_passwd || !*gr->gr_passwd)
- return 0; /* No password. */
+ return (*verify_fn) ("", id, 1, gr, verify_hook);
name = gr->gr_name;
pwd_or_grp = gr;
}
@@ -254,7 +260,7 @@ verify_id (uid_t id, int is_group, int multiple,
== 0)
{
if (!pw->pw_passwd || !*pw->pw_passwd)
- return 0; /* No password. */
+ return (*verify_fn) ("", id, 0, pw, verify_hook);
name = pw->pw_name;
pwd_or_grp = pw;
}
@@ -282,9 +288,6 @@ verify_id (uid_t id, int is_group, int multiple,
/* Default GETPASS_FN to using getpass. */
getpass_fn = get_passwd;
- /* VERIFY_FN should have been defaulted in idvec_verify if necessary. */
- assert (verify_fn);
-
if (multiple)
{
if (name)