aboutsummaryrefslogtreecommitdiff
path: root/libshouldbeinlibc/idvec-verify.c
diff options
context:
space:
mode:
Diffstat (limited to 'libshouldbeinlibc/idvec-verify.c')
-rw-r--r--libshouldbeinlibc/idvec-verify.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/libshouldbeinlibc/idvec-verify.c b/libshouldbeinlibc/idvec-verify.c
index f8b2f449..55d20e2c 100644
--- a/libshouldbeinlibc/idvec-verify.c
+++ b/libshouldbeinlibc/idvec-verify.c
@@ -1,6 +1,6 @@
/* Verify user passwords
- Copyright (C) 1996,97,98,99,2002,2003 Free Software Foundation, Inc.
+ Copyright (C) 1996,97,98,99,2002 Free Software Foundation, Inc.
Written by Miles Bader <miles@gnu.org>
This program is free software; you can redistribute it and/or
@@ -30,6 +30,8 @@
#define SHADOW_PASSWORD_STRING "x" /* pw_passwd contents for shadow passwd */
+#pragma weak crypt
+
static error_t verify_id (); /* FWD */
/* Get a password from the user, returning it in malloced storage. */
@@ -68,8 +70,13 @@ verify_passwd (const char *password,
if (sys_encrypted[0] == '\0')
return 0; /* No password. */
- /* Encrypt the password entered by the user (SYS_ENCRYPTED is the salt). */
- encrypted = crypt (password, sys_encrypted);
+ if (crypt)
+ /* Encrypt the password entered by the user (SYS_ENCRYPTED is the salt). */
+ encrypted = crypt (password, sys_encrypted);
+ else
+ /* No crypt on this system! Use plain-text passwords. */
+ encrypted = password;
+
if (! encrypted)
/* Crypt failed. */
return errno;