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.


Gbp-Pq: Name no_crypt_hack
This commit is contained in:
Ubuntu Developers 2022-05-14 02:43:52 +08:00 committed by openKylinBot
parent f711348e85
commit 7d95e477ed
3 changed files with 8 additions and 0 deletions

View File

@ -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

View File

@ -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;
}
}

View File

@ -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;
}