From 158782b3bb791eae3c97947944c7023452bfbc96 Mon Sep 17 00:00:00 2001 From: sin Date: Wed, 13 May 2015 12:04:15 +0100 Subject: Add fortify_fn() helper in fortify-headers.h --- include/strings.h | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'include/strings.h') diff --git a/include/strings.h b/include/strings.h index 4e0c194..b5f1f5b 100644 --- a/include/strings.h +++ b/include/strings.h @@ -4,6 +4,7 @@ #include_next #if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0 && defined(__OPTIMIZE__) && __OPTIMIZE__ > 0 +#include "fortify-headers.h" #ifdef __cplusplus extern "C" { @@ -14,27 +15,23 @@ extern "C" { || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700) #undef bcopy #undef bzero -__typeof__(bcopy) __bcopy_orig __asm__(__USER_LABEL_PREFIX__ "bcopy"); -extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) -void bcopy(const void *src, void *dst, size_t n) +fortify_fn(bcopy) void bcopy(const void *src, void *dst, size_t n) { size_t bos_dst = __builtin_object_size(dst, 0); size_t bos_src = __builtin_object_size(src, 0); if (n > bos_dst || n > bos_src) __builtin_trap(); - return __bcopy_orig(src, dst, n); + return __orig_bcopy(src, dst, n); } -__typeof__(bzero) __bzero_orig __asm__(__USER_LABEL_PREFIX__ "bzero"); -extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) -void bzero(void *src, size_t n) +fortify_fn(bzero) void bzero(void *src, size_t n) { size_t bos = __builtin_object_size(src, 0); if (n > bos) __builtin_trap(); - return __bzero_orig(src, n); + return __orig_bzero(src, n); } #endif -- cgit v1.3