File des-fcrypt.diff of Package libressl

From: Jan Engelhardt <jengelh@inai.de>
References: https://marc.info/?l=openbsd-tech&m=150906184009035&w=2

Do what openssl-1.1 is doing to guard against an otherwise
out-of-bounds access.

---
 crypto/des/fcrypt.c |    2 ++
 1 file changed, 2 insertions(+)

Index: libressl-2.6.3/crypto/des/fcrypt.c
===================================================================
--- libressl-2.6.3.orig/crypto/des/fcrypt.c
+++ libressl-2.6.3/crypto/des/fcrypt.c
@@ -78,6 +78,8 @@ char *DES_fcrypt(const char *buf, const
 	 * crypt to "*".  This was found when replacing the crypt in
 	 * our shared libraries.  People found that the disabled
 	 * accounts effectively had no passwd :-(. */
+	if (salt[0] >= sizeof(con_salt) || salt[1] >= sizeof(con_salt))
+		return NULL;
 	x=ret[0]=((salt[0] == '\0')?'A':salt[0]);
 	Eswap0=con_salt[x]<<2;
 	x=ret[1]=((salt[1] == '\0')?'A':salt[1]);
openSUSE Build Service is sponsored by