From 4a18008ce14b77be67ed0b5f0e27b4db3db5beb8 Mon Sep 17 00:00:00 2001 From: sin Date: Thu, 29 Jan 2015 12:14:06 +0000 Subject: Add bzero() checks --- include/strings.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'include/strings.h') diff --git a/include/strings.h b/include/strings.h index e81c8e0..d9a625d 100644 --- a/include/strings.h +++ b/include/strings.h @@ -21,8 +21,22 @@ __fortify_bcopy(const void *__restrict src, void *__restrict dest, size_t n) return bcopy(src, dest, n); } +static inline __attribute__ ((always_inline)) +void +__fortify_bzero(void *src, size_t n) +{ + size_t bos = __builtin_object_size(src, 0); + + if (n > bos) + __builtin_trap(); + return bzero(src, n); +} + #undef bcopy #define bcopy(src, dest, n) __fortify_bcopy(src, dest, n) +#undef bzero +#define bzero(src, n) __fortify_bzero(src, n) + #endif #endif -- cgit v1.3