diff options
Diffstat (limited to 'malloc/beware_overflow/beware_overflow.c')
| -rw-r--r-- | malloc/beware_overflow/beware_overflow.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/malloc/beware_overflow/beware_overflow.c b/malloc/beware_overflow/beware_overflow.c new file mode 100644 index 0000000..4b2555c --- /dev/null +++ b/malloc/beware_overflow/beware_overflow.c @@ -0,0 +1,10 @@ +#include "beware_overflow.h"
+
+void *beware_overflow(void *ptr, size_t nmemb, size_t size)
+{
+ size_t res;
+ if (__builtin_umull_overflow(nmemb, size, &res))
+ return NULL;
+ char *r = ptr;
+ return r + res;
+}
|
