Add an implementation of strnlen for memcheck, from Tom Hughes.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2146 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/vg_symtab2.c b/coregrind/vg_symtab2.c
index a6e6bc9..393f8bd 100644
--- a/coregrind/vg_symtab2.c
+++ b/coregrind/vg_symtab2.c
@@ -2199,6 +2199,8 @@
*/
VG_(add_redirect_sym)("soname:libc.so.6", "stpcpy",
"*vgpreload_memcheck.so*", "stpcpy");
+ VG_(add_redirect_sym)("soname:libc.so.6", "strnlen",
+ "*vgpreload_memcheck.so*", "strnlen");
VG_(add_redirect_sym)("soname:ld-linux.so.2", "stpcpy",
"*vgpreload_memcheck.so*", "stpcpy");
diff --git a/memcheck/mac_replace_strmem.c b/memcheck/mac_replace_strmem.c
index 8f7acd7..e49fe9c 100644
--- a/memcheck/mac_replace_strmem.c
+++ b/memcheck/mac_replace_strmem.c
@@ -176,6 +176,13 @@
return dst_orig;
}
+unsigned int strnlen ( const char* str, unsigned int n )
+{
+ UInt i = 0;
+ while (i < n && str[i] != 0) i++;
+ return i;
+}
+
unsigned int strlen ( const char* str )
{
UInt i = 0;