aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorTim J. Robbins <tjr@FreeBSD.org>2002-11-10 10:50:42 +0000
committerTim J. Robbins <tjr@FreeBSD.org>2002-11-10 10:50:42 +0000
commit99eabcc8c3987f566213b2809687b2be3e75ce3a (patch)
tree7b749724f0b64f41c5363c27e256eca1e7ed40ff /tools
parent2f5154a2c16c563f440b74e2f6a9c4bd9cf41b41 (diff)
downloadsrc-99eabcc8c3987f566213b2809687b2be3e75ce3a.tar.gz
src-99eabcc8c3987f566213b2809687b2be3e75ce3a.zip
Test for the zero-length buffer bug corrected in mbrtowc.c revision 1.3.
Notes
Notes: svn path=/head/; revision=106726
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 d781f16d4428..630ae2e7ee87 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.
*/