summaryrefslogtreecommitdiff
path: root/libshouldbeinlibc
diff options
context:
space:
mode:
Diffstat (limited to 'libshouldbeinlibc')
-rw-r--r--libshouldbeinlibc/ChangeLog13
-rw-r--r--libshouldbeinlibc/idvec-verify.c13
-rw-r--r--libshouldbeinlibc/ugids-verify-auth.c25
3 files changed, 25 insertions, 26 deletions
diff --git a/libshouldbeinlibc/ChangeLog b/libshouldbeinlibc/ChangeLog
index 12fbb1c3..8ab5a69c 100644
--- a/libshouldbeinlibc/ChangeLog
+++ b/libshouldbeinlibc/ChangeLog
@@ -1,3 +1,16 @@
+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.
+
1999-02-12 Gordon Matzigkeit <gord@trick.fig.org>
* Makefile (LCLHDRS): Purge argp-fmtstream.h and argp-namefrob.h.
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)
diff --git a/libshouldbeinlibc/ugids-verify-auth.c b/libshouldbeinlibc/ugids-verify-auth.c
index 000e4126..91fa06e9 100644
--- a/libshouldbeinlibc/ugids-verify-auth.c
+++ b/libshouldbeinlibc/ugids-verify-auth.c
@@ -28,28 +28,10 @@
#include <grp.h>
#include <hurd/paths.h>
-/*#include <hurd/password.h>*/ /* XXX commented out until new libc installed */
+#include <hurd/password.h>
#include "ugids.h"
-/* XXXX these are dummies to use until libc gets re-installed.
- The weak symbols should make the real libhurduser.so versions
- get used as soon as they exist, even though we didn't #include
- the header. When they are available in a working libc dist,
- then this page can be removed and the #include above uncommented. */
-#pragma weak password_check_user
-error_t
-password_check_user (io_t a, uid_t b, const char *c, auth_t *d)
-{
- return ENOSYS;
-}
-#pragma weak password_check_group
-error_t
-password_check_group (io_t a, uid_t b, const char *c, auth_t *d)
-{
- return ENOSYS;
-}
-
/* Accumulated information from authentication various passwords. */
struct svma_state
{
@@ -93,7 +75,7 @@ server_verify_make_auth (const char *password,
error_t err = (*check) (svma_state->server, id, password, &auth);
if (! err)
- /* PASSWORD checked out ok; the corresponding authentication is in AUTH. */
+ /* PASSWORD checked out ok; the corresponding authentication is in AUTH. */
{
err = svma_state_add_auths (svma_state, &auth, 1);
if (err)
@@ -113,7 +95,8 @@ server_verify_make_auth (const char *password,
for the idvec_verify function in <idvec.h>. */
error_t
ugids_verify_make_auth (const struct ugids *ugids,
- const struct idvec *have_uids, const struct idvec *have_gids,
+ const struct idvec *have_uids,
+ const struct idvec *have_gids,
char *(*getpass_fn) (const char *prompt,
uid_t id, int is_group,
void *pwd_or_grp, void *hook),