summaryrefslogtreecommitdiff
path: root/malloc/beware_overflow/beware_overflow.c
blob: 4b2555c5ac8c8ef0b73a64d8a3dc0cbad993c593 (plain)
1
2
3
4
5
6
7
8
9
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;
}