diff options
author | Baptiste Daroussin <bapt@FreeBSD.org> | 2016-04-20 20:44:30 +0000 |
---|---|---|
committer | Baptiste Daroussin <bapt@FreeBSD.org> | 2016-04-20 20:44:30 +0000 |
commit | d3591d68a9917dfa32a615322601734afb1ac3f7 (patch) | |
tree | 4c587018d8bfb661687b93703c10cfa3559d9a68 /lib/libc/locale/ascii.c | |
parent | 4dd13092b5a38fde637eaafbc45e728ea3e00e72 (diff) | |
download | src-d3591d68a9917dfa32a615322601734afb1ac3f7.tar.gz src-d3591d68a9917dfa32a615322601734afb1ac3f7.zip |
Check the returned value of memchr(3) before using it
Reported by: Coverity
CID: 1338530
Notes
Notes:
svn path=/head/; revision=298367
Diffstat (limited to 'lib/libc/locale/ascii.c')
-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 3e625e44a383..a550c70deb69 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; |