From: downsj Date: Thu, 27 Mar 1997 23:26:28 +0000 (+0000) Subject: Make this code sane. X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=64800010c2b33848e3e915550907b148ecf62633;p=openbsd Make this code sane. --- 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))