summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authortjr <tjr@FreeBSD.org>2002-11-10 10:50:42 +0000
committertjr <tjr@FreeBSD.org>2002-11-10 10:50:42 +0000
commitca621988d2572c95badb1c0477e8f2a97bd7958d (patch)
tree7b749724f0b64f41c5363c27e256eca1e7ed40ff /tools
parent68886a9d65d5d21bdfe3d23f50770ce071fc5d86 (diff)
downloadFreeBSD-src-ca621988d2572c95badb1c0477e8f2a97bd7958d.zip
FreeBSD-src-ca621988d2572c95badb1c0477e8f2a97bd7958d.tar.gz
Test for the zero-length buffer bug corrected in mbrtowc.c revision 1.3.
Diffstat (limited to 'tools')
-rw-r--r--tools/regression/lib/libc/locale/test-mbrtowc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/tools/regression/lib/libc/locale/test-mbrtowc.c b/tools/regression/lib/libc/locale/test-mbrtowc.c
index d781f16..630ae2e 100644
--- a/tools/regression/lib/libc/locale/test-mbrtowc.c
+++ b/tools/regression/lib/libc/locale/test-mbrtowc.c
@@ -86,6 +86,13 @@ main(int argc, char *argv[])
assert(mbrtowc(&wc, buf, 0, &s) == (size_t)-2);
assert(wc == L'z');
+ /* Check that mbrtowc() doesn't access the buffer when n == 0. */
+ wc = L'z';
+ memset(&s, 0, sizeof(s));
+ buf[0] = '\0';
+ assert(mbrtowc(&wc, buf, 0, &s) == (size_t)-2);
+ assert(wc == L'z');
+
/*
* Japanese (EUC) locale.
*/
OpenPOWER on IntegriCloud