diff options
Diffstat (limited to 'libshouldbeinlibc')
-rw-r--r-- | libshouldbeinlibc/Makefile | 2 | ||||
-rw-r--r-- | libshouldbeinlibc/idvec-verify.c | 15 |
2 files changed, 9 insertions, 8 deletions
diff --git a/libshouldbeinlibc/Makefile b/libshouldbeinlibc/Makefile index 04c085bb..2edf15f4 100644 --- a/libshouldbeinlibc/Makefile +++ b/libshouldbeinlibc/Makefile @@ -38,6 +38,8 @@ installhdrs = idvec.h timefmt.h maptime.h \ installhdrsubdir = . +LDLIBS += $(and $(HAVE_LIBCRYPT),-lcrypt) + OBJS = $(SRCS:.c=.o) include ../Makeconf diff --git a/libshouldbeinlibc/idvec-verify.c b/libshouldbeinlibc/idvec-verify.c index a7d95761..1c4bc494 100644 --- a/libshouldbeinlibc/idvec-verify.c +++ b/libshouldbeinlibc/idvec-verify.c @@ -27,12 +27,15 @@ #include <grp.h> #include <pwd.h> #include <shadow.h> +#ifdef HAVE_LIBCRYPT #include <crypt.h> +#else +#warning "No crypt on this system! Using plain-text passwords." +#define crypt(password, encrypted) password +#endif #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. */ @@ -71,12 +74,8 @@ verify_passwd (const char *password, if (sys_encrypted[0] == '\0') return 0; /* No password. */ - 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; + /* Encrypt the password entered by the user (SYS_ENCRYPTED is the salt). */ + encrypted = crypt (password, sys_encrypted); if (! encrypted) /* Crypt failed. */ |