From: Marco d'Itri Date: Fri, 2 Jun 2017 11:27:15 +0200 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 16b3ee879791..a8694fccd85e 100644 --- a/pppd/Makefile.linux +++ b/pppd/Makefile.linux @@ -121,10 +121,14 @@ CFLAGS += -DHAS_SHADOW #LIBS += -lshadow $(LIBS) endif +ifdef NO_CRYPT_HACK +CFLAGS += -DNO_CRYPT_HACK +else ifneq ($(wildcard /usr/include/crypt.h),) CFLAGS += -DHAVE_CRYPT_H=1 LIBS += -lcrypt endif +endif ifdef USE_LIBUTIL CFLAGS += -DHAVE_LOGWTMP=1 diff --git a/pppd/auth.c b/pppd/auth.c index 4271af687102..931c6b45043b 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 */ if (cryptpap || strcmp(passwd, secret) != 0) { +#ifndef NO_CRYPT_HACK char *cbuf = crypt(passwd, secret); if (!cbuf || strcmp(cbuf, secret) != 0) +#endif ret = UPAP_AUTHNAK; } } diff --git a/pppd/session.c b/pppd/session.c index 56385dd63874..977139665218 100644 --- a/pppd/session.c +++ b/pppd/session.c @@ -351,8 +351,10 @@ session_start(flags, user, passwd, ttyName, msg) */ if (pw->pw_passwd == NULL || strlen(pw->pw_passwd) < 2) return SESSION_FAILED; +#ifndef NO_CRYPT_HACK cbuf = crypt(passwd, pw->pw_passwd); if (!cbuf || strcmp(cbuf, pw->pw_passwd) != 0) +#endif return SESSION_FAILED; }