From 64800010c2b33848e3e915550907b148ecf62633 Mon Sep 17 00:00:00 2001 From: downsj Date: Thu, 27 Mar 1997 23:26:28 +0000 Subject: [PATCH] Make this code sane. --- lib/libc/crypt/crypt.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/libc/crypt/crypt.c b/lib/libc/crypt/crypt.c index e28e94e42f6..c468d301a26 100644 --- a/lib/libc/crypt/crypt.c +++ b/lib/libc/crypt/crypt.c @@ -50,7 +50,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static char rcsid[] = "$OpenBSD: crypt.c,v 1.7 1997/02/13 16:58:44 provos Exp $"; +static char rcsid[] = "$OpenBSD: crypt.c,v 1.8 1997/03/27 23:26:28 downsj Exp $"; #endif /* LIBC_SCCS and not lint */ #include @@ -621,7 +621,7 @@ crypt(key, setting) * and padding with zeros. */ q = (u_char *) keybuf; - while (q - (u_char *) keybuf - 8) { + while ((q - (u_char *) keybuf) <= sizeof(keybuf)) { if (*q++ = *key << 1) key++; } @@ -650,7 +650,8 @@ crypt(key, setting) * And XOR with the next 8 characters of the key. */ q = (u_char *) keybuf; - while (q - (u_char *) keybuf - 8 && *key) + while (((q - (u_char *) keybuf) <= sizeof(keybuf)) && + *key) *q++ ^= *key++ << 1; if (des_setkey((u_char *) keybuf)) -- 2.20.1