diff options
author | bapt <bapt@FreeBSD.org> | 2016-04-20 20:44:30 +0000 |
---|---|---|
committer | bapt <bapt@FreeBSD.org> | 2016-04-20 20:44:30 +0000 |
commit | 2253af0f89b21c7e68ceda1a83902e47b11b0c39 (patch) | |
tree | 4c587018d8bfb661687b93703c10cfa3559d9a68 /lib/libc | |
parent | 9ecbe9199d47cc80abff1123c80ed8384fa9a0ff (diff) | |
download | FreeBSD-src-2253af0f89b21c7e68ceda1a83902e47b11b0c39.zip FreeBSD-src-2253af0f89b21c7e68ceda1a83902e47b11b0c39.tar.gz |
Check the returned value of memchr(3) before using it
Reported by: Coverity
CID: 1338530
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/locale/ascii.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/libc/locale/ascii.c b/lib/libc/locale/ascii.c index 3e625e4..a550c70 100644 --- a/lib/libc/locale/ascii.c +++ b/lib/libc/locale/ascii.c @@ -133,11 +133,14 @@ _ascii_mbsnrtowcs(wchar_t * __restrict dst, const char ** __restrict src, if (dst == NULL) { s = memchr(*src, '\0', nms); + if (s == NULL) + return (nms); + if (*s & 0x80) { errno = EILSEQ; return ((size_t)-1); } - return (s != NULL ? s - *src : nms); + return (s - *src); } s = *src; |