summaryrefslogtreecommitdiff
path: root/tests/string_test.cpp
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2015-02-14 13:21:22 -0800
committerElliott Hughes <enh@google.com>2015-02-14 13:21:22 -0800
commit41ef902379ba24bd8a3ca6d7733b8376efb55ebd (patch)
tree855ac7e3fa276bfb55594e4efb28c7c29cf28f3f /tests/string_test.cpp
parentf9fb52ab309c97d5b2ef4f8e1daff3eed4cf4024 (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.cpp10
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;
+}