From 09f97916ba113baf157eb0cc5c846dc6ef18270a Mon Sep 17 00:00:00 2001 From: ume Date: Thu, 5 Jun 2014 15:39:57 +0000 Subject: [PATCH] MFH r266813: Don't break the legacy applications which set just 2 bytes to salt. Approved by: re (gjb) git-svn-id: svn://svn.freebsd.org/base/stable/9@267116 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- lib/libcrypt/crypt.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/libcrypt/crypt.c b/lib/libcrypt/crypt.c index 040fdc1b9..c3ca4c225 100644 --- a/lib/libcrypt/crypt.c +++ b/lib/libcrypt/crypt.c @@ -104,12 +104,16 @@ char * crypt(const char *passwd, const char *salt) { const struct crypt_format *cf; +#ifdef HAS_DES + int len; +#endif for (cf = crypt_formats; cf->name != NULL; ++cf) if (cf->magic != NULL && strstr(salt, cf->magic) == salt) return (cf->func(passwd, salt)); #ifdef HAS_DES - if (strlen(salt) == 13 && strspn(salt, DES_SALT_ALPHABET) == 13) + len = strlen(salt); + if ((len == 13 || len == 2) && strspn(salt, DES_SALT_ALPHABET) == len) return (crypt_des(passwd, salt)); #endif return (crypt_format->func(passwd, salt)); -- 2.45.0