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
diff --git a/tests/string_test.cpp b/tests/string_test.cpp
index 137565e..66cf848 100644
--- a/tests/string_test.cpp
+++ b/tests/string_test.cpp
@@ -1385,3 +1385,13 @@
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;
+}