From 5cd2c721341efae43974af39d288a6713b8ac6e3 Mon Sep 17 00:00:00 2001 From: millert <> Date: Wed, 2 Jun 2010 12:58:12 +0000 Subject: [PATCH] Avoid using and end pointer since strnlen(string, -1) is legal and would otherwise result in overflowing the end pointer and cause strnlen() to return 0. OK sthen@ --- src/lib/libc/string/strnlen.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/lib/libc/string/strnlen.c b/src/lib/libc/string/strnlen.c index 0c6df381..2dc7b4fb 100644 --- a/src/lib/libc/string/strnlen.c +++ b/src/lib/libc/string/strnlen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: strnlen.c,v 1.2 2010/05/21 06:57:45 chl Exp $ */ +/* $OpenBSD: strnlen.c,v 1.3 2010/06/02 12:58:12 millert Exp $ */ /* * Copyright (c) 2010 Todd C. Miller @@ -23,10 +23,9 @@ size_t strnlen(const char *str, size_t maxlen) { - const char *cp, *ep; + const char *cp; - ep = str + maxlen; - for (cp = str; cp < ep && *cp != '\0'; cp++) + for (cp = str; maxlen != 0 && *cp != '\0'; cp++, maxlen--) ; return (size_t)(cp - str);