From 8ca440089f37a11260a8a765acf50fb38fa08da4 Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Sat, 21 Jun 2014 18:04:54 -0700 Subject: [PATCH] Use __builtin_*_chk for bcopy/bzero. Replacing memmove/memset with their builtin check equivalents fixes an implicit definition warning when only including strings.h. Change-Id: I74f03b9506ea37f5c2f9c11498e379a70998b430 --- libc/include/strings.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libc/include/strings.h b/libc/include/strings.h index c4d5f6cf1..ae261cff6 100644 --- a/libc/include/strings.h +++ b/libc/include/strings.h @@ -43,8 +43,16 @@ #include __BEGIN_DECLS -#define bcopy(b1, b2, len) (void)(memmove((b2), (b1), (len))) -#define bzero(b, len) (void)(memset((b), '\0', (len))) +#if defined(__BIONIC_FORTIFY) +#define bcopy(b1, b2, len) \ + (void)(__builtin___memmove_chk((b2), (b1), (len), __bos0(b2))) +#define bzero(b, len) \ + (void)(__builtin___memset_chk((b), '\0', (len), __bos0(b))) +#else +#define bcopy(b1, b2, len) (void)(__builtin_memmove((b2), (b1), (len))) +#define bzero(b, len) (void)(__builtin_memset((b), '\0', (len))) +#endif + int ffs(int); int strcasecmp(const char *, const char *);