diff options
author | Elliott Hughes <enh@google.com> | 2015-02-14 13:21:22 -0800 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2015-02-14 13:21:22 -0800 |
commit | 41ef902379ba24bd8a3ca6d7733b8376efb55ebd (patch) | |
tree | 855ac7e3fa276bfb55594e4efb28c7c29cf28f3f /tests/string_test.cpp | |
parent | f9fb52ab309c97d5b2ef4f8e1daff3eed4cf4024 (diff) |
Fix memchr overflow.
The overflow's actually in the generic C implementation of memchr.
While I'm here, let's switch our generic memrchr to the OpenBSD version too.
Bug: https://code.google.com/p/android/issues/detail?id=147048
Change-Id: I296ae06a1ee196d2c77c95a22f11ee4d658962da
Diffstat (limited to 'tests/string_test.cpp')
-rw-r--r-- | tests/string_test.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/tests/string_test.cpp b/tests/string_test.cpp index 137565e25..66cf848c9 100644 --- a/tests/string_test.cpp +++ b/tests/string_test.cpp @@ -1385,3 +1385,13 @@ TEST(string, __gnu_basename) { TestBasename("///", ""); TestBasename("//usr//lib//", ""); } + +TEST(string, strnlen_147048) { + // https://code.google.com/p/android/issues/detail?id=147048 + char stack_src[64] = {0}; + EXPECT_EQ(0U, strnlen(stack_src, 1024*1024*1024)); + char* heap_src = new char[1]; + *heap_src = '\0'; + EXPECT_EQ(0U, strnlen(heap_src, 1024*1024*1024)); + delete[] heap_src; +} |