diff options
author | wollman <wollman@FreeBSD.org> | 2009-11-25 04:27:55 +0000 |
---|---|---|
committer | wollman <wollman@FreeBSD.org> | 2009-11-25 04:27:55 +0000 |
commit | b15e7bd9790eb41e97bbef83cfa1f1d778e2e7e2 (patch) | |
tree | de117fc85f5356429d57eabe438f1669bbab5b22 /lib/libc/stdio/vfwprintf.c | |
parent | f44a6f4d8d88c80474b25b8be3da936d6c652bb1 (diff) | |
download | FreeBSD-src-b15e7bd9790eb41e97bbef83cfa1f1d778e2e7e2.zip FreeBSD-src-b15e7bd9790eb41e97bbef83cfa1f1d778e2e7e2.tar.gz |
In __mbsconv(), if prec was zero, nconv could have been used
uninitialized. Initialize it to a safe value so that there's no
chance of returning an error if stack garbage happens to be equal to
(size_t)-1 or (size_t)-2.
Found by: Clang static analyzer
MFC after: 7 days
Diffstat (limited to 'lib/libc/stdio/vfwprintf.c')
-rw-r--r-- | lib/libc/stdio/vfwprintf.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/libc/stdio/vfwprintf.c b/lib/libc/stdio/vfwprintf.c index f3768de..d34f559 100644 --- a/lib/libc/stdio/vfwprintf.c +++ b/lib/libc/stdio/vfwprintf.c @@ -293,7 +293,7 @@ __mbsconv(char *mbsarg, int prec) * number of characters to print. */ p = mbsarg; - insize = nchars = 0; + insize = nchars = nconv = 0; mbs = initial_mbs; while (nchars != (size_t)prec) { nconv = mbrlen(p, MB_CUR_MAX, &mbs); |