Use strlen when searching for a nul char
Commit Message
@@ -62,14 +62,15 @@
#endif
-#ifndef _HAVE_STRING_ARCH_strchr
+#ifndef _HAVE_STRING_ARCH_rawmemchr
extern void *__rawmemchr (const void *__s, int __c);
-# if __GNUC_PREREQ (3, 2)
-# define strchr(s, c) \
- (__extension__ (__builtin_constant_p (c) && !__builtin_constant_p (s) \
- && (c) == '\0' \
- ? (char *) __rawmemchr (s, c) \
- : __builtin_strchr (s, c)))
+# define __rawmemchr(s, c) \
+ (__extension__ ({ char *__s = (char *)(s); \
+ __builtin_constant_p (c) && (c) == '\0' \
+ ? (void *)(__s + strlen (__s)) \
+ : __rawmemchr (__s, (c));}))
+# ifdef __USE_GNU
+# define rawmemchr(s,c) __rawmemchr ((s), (c))
# endif
#endif