From 743ff0ad8a79b8d021836bf72f167f83112329ba Mon Sep 17 00:00:00 2001 From: downsj <> Date: Thu, 27 Mar 1997 23:26:28 +0000 Subject: [PATCH] Make this code sane. --- src/lib/libc/crypt/crypt.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/lib/libc/crypt/crypt.c b/src/lib/libc/crypt/crypt.c index e28e94e4..c468d301 100644 --- a/src/lib/libc/crypt/crypt.c +++ b/src/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))