aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/locale/ascii.c
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2016-04-20 20:44:30 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2016-04-20 20:44:30 +0000
commitd3591d68a9917dfa32a615322601734afb1ac3f7 (patch)
tree4c587018d8bfb661687b93703c10cfa3559d9a68 /lib/libc/locale/ascii.c
parent4dd13092b5a38fde637eaafbc45e728ea3e00e72 (diff)
downloadsrc-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.c5
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;