From: Marco d'Itri Date: Wed, 25 Jan 2012 19:14:27 +0100 Subject: [PATCH] no_crypt_hack The udeb package does not have crypt(3). This patch makes authentication always fail, since it is not needed anyway for dialout. --- pppd/Makefile.linux | 4 ++++ pppd/auth.c | 2 ++ pppd/session.c | 2 ++ 3 files changed, 8 insertions(+) diff --git a/pppd/Makefile.linux b/pppd/Makefile.linux index 44cf309..c001679 100644 --- a/pppd/Makefile.linux +++ b/pppd/Makefile.linux @@ -116,10 +116,14 @@ COMPILE_FLAGS += -DHAS_SHADOW #LIBS += -lshadow $(LIBS) endif +ifdef NO_CRYPT_HACK +COMPILE_FLAGS += -DNO_CRYPT_HACK +else ifneq ($(wildcard /usr/include/crypt.h),) COMPILE_FLAGS += -DHAVE_CRYPT_H=1 LIBS += -lcrypt endif +endif ifdef NEEDDES ifndef USE_CRYPT diff --git a/pppd/auth.c b/pppd/auth.c index 031c030..36e1549 100644 --- a/pppd/auth.c +++ b/pppd/auth.c @@ -1442,8 +1442,10 @@ check_passwd(unit, auser, userlen, apasswd, passwdlen, msg) } if (secret[0] != 0 && !login_secret) { /* password given in pap-secrets - must match */ +#ifndef NO_CRYPT_HACK if ((cryptpap || strcmp(passwd, secret) != 0) && strcmp(crypt(passwd, secret), secret) != 0) +#endif ret = UPAP_AUTHNAK; } } diff --git a/pppd/session.c b/pppd/session.c index 32901a2..108331f 100644 --- a/pppd/session.c +++ b/pppd/session.c @@ -348,8 +348,10 @@ session_start(flags, user, passwd, ttyName, msg) /* * If no passwd, don't let them login if we're authenticating. */ +#ifndef NO_CRYPT_HACK if (pw->pw_passwd == NULL || strlen(pw->pw_passwd) < 2 || strcmp(crypt(passwd, pw->pw_passwd), pw->pw_passwd) != 0) +#endif return SESSION_FAILED; }