]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Do our own implementations of strchrnul() and rawmemchr().
authorJulian Seward <jseward@acm.org>
Tue, 23 Nov 2004 00:20:17 +0000 (00:20 +0000)
committerJulian Seward <jseward@acm.org>
Tue, 23 Nov 2004 00:20:17 +0000 (00:20 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3075

coregrind/vg_symtab2.c
memcheck/mac_replace_strmem.c

index 874ab227fb5480305cb6f9467c2881ef60ece84f..9b2984290b49b9802fd845814b5e92bc009840c5 100644 (file)
@@ -2517,12 +2517,26 @@ void VG_(setup_code_redirect_table) ( void )
     */
    add_redirect_sym("soname:libc.so.6", "stpcpy",
                     "*vgpreload_memcheck.so*", "stpcpy");
+
+   add_redirect_sym("soname:libc.so.6", "strlen",
+                    "*vgpreload_memcheck.so*", "strlen");
+
    add_redirect_sym("soname:libc.so.6", "strnlen",
                     "*vgpreload_memcheck.so*", "strnlen");
+
    add_redirect_sym("soname:ld-linux.so.2", "stpcpy",
                     "*vgpreload_memcheck.so*", "stpcpy");
+
+   add_redirect_sym("soname:libc.so.6", "strchr",
+                    "*vgpreload_memcheck.so*", "strchr");
    add_redirect_sym("soname:ld-linux.so.2", "strchr",
                     "*vgpreload_memcheck.so*", "strchr");
+
+   add_redirect_sym("soname:libc.so.6", "strchrnul",
+                    "*vgpreload_memcheck.so*", "glibc232_strchrnul");
+
+   add_redirect_sym("soname:libc.so.6", "rawmemchr",
+                    "*vgpreload_memcheck.so*", "glibc232_rawmemchr");
 }
 
 /*------------------------------------------------------------*/
index 5e8ecd3347170f61c4c6002175422c81646fd1ed..c268a2dee69ead23d33049140428cc462cc2fee4 100644 (file)
@@ -353,6 +353,33 @@ char* stpcpy ( char* dst, const char* src )
 }
 
 
+/* Find the first occurrence of C in S or the final NUL byte.  */
+
+char* glibc232_strchrnul (const char* s, int c_in)
+{
+   unsigned char  c        = (unsigned char) c_in;
+   unsigned char* char_ptr = (unsigned char *)s;
+   while (1) {
+      if (*char_ptr == 0) return char_ptr;
+      if (*char_ptr == c) return char_ptr;
+      char_ptr++;
+   }
+}
+
+
+/* Find the first occurrence of C in S.  */
+
+char* glibc232_rawmemchr (const char* s, int c_in)
+{
+   unsigned char  c        = (unsigned char) c_in;
+   unsigned char* char_ptr = (unsigned char *)s;
+   while (1) {
+      if (*char_ptr == c) return char_ptr;
+      char_ptr++;
+   }
+}
+
+
 /*--------------------------------------------------------------------*/
 /*--- end                                     mac_replace_strmem.c ---*/
 /*--------------------------------------------------------------------*/