diff options
author | Vitaly Buka <vitalybuka@google.com> | 2017-11-30 22:15:39 +0000 |
---|---|---|
committer | Vitaly Buka <vitalybuka@google.com> | 2017-11-30 22:15:39 +0000 |
commit | 3594ba8e72446d36d259f2c4d923e5e67db1c7a8 (patch) | |
tree | e129cc46404c5b826e3c2eff602207ce4e3daa02 /lib/msan/tests | |
parent | c7e755744fcb0b65fd33641298d56bdbb507fe25 (diff) |
[msan] Fix return type of mbrtowc
Summary: Fixes https://github.com/google/oss-fuzz/issues/1009
Reviewers: eugenis
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D40676
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@319484 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/msan/tests')
-rw-r--r-- | lib/msan/tests/msan_test.cc | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/msan/tests/msan_test.cc b/lib/msan/tests/msan_test.cc index 212e0ee3e..82d659e57 100644 --- a/lib/msan/tests/msan_test.cc +++ b/lib/msan/tests/msan_test.cc @@ -2121,13 +2121,15 @@ TEST(MemorySanitizer, mbtowc) { } TEST(MemorySanitizer, mbrtowc) { - const char *x = "abc"; - wchar_t wx; - mbstate_t mbs; - memset(&mbs, 0, sizeof(mbs)); - int res = mbrtowc(&wx, x, 3, &mbs); - EXPECT_GT(res, 0); - EXPECT_NOT_POISONED(wx); + mbstate_t mbs = {}; + + wchar_t wc; + size_t res = mbrtowc(&wc, "\377", 1, &mbs); + EXPECT_EQ(res, -1ULL); + + res = mbrtowc(&wc, "abc", 3, &mbs); + EXPECT_GT(res, 0ULL); + EXPECT_NOT_POISONED(wc); } TEST(MemorySanitizer, wcsftime) { |