X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=lib%2Fsilcutil%2Fsilcmemory.c;h=93fd8751e8334a593817bb3079004da40d829e07;hp=e2e455a9ec90cf214fb48a48db0860fec9243c3e;hb=382d15d447b7a95390decfa783836ae4fe255b3d;hpb=3cf38201f9ffaad2da53757ed48a5546e1d03636 diff --git a/lib/silcutil/silcmemory.c b/lib/silcutil/silcmemory.c index e2e455a9..93fd8751 100644 --- a/lib/silcutil/silcmemory.c +++ b/lib/silcutil/silcmemory.c @@ -22,9 +22,12 @@ #ifndef SILC_STACKTRACE +#define SILC_MAX_ALLOC (1024 * 1024L * 1024L) + void *silc_malloc(size_t size) { void *addr; + assert(size >= 0 && size <= SILC_MAX_ALLOC); addr = malloc(size); assert(addr != NULL); return addr; @@ -33,6 +36,7 @@ void *silc_malloc(size_t size) void *silc_calloc(size_t items, size_t size) { void *addr; + assert(size * items >= 0 && size * items <= SILC_MAX_ALLOC); addr = calloc(items, size); assert(addr != NULL); return addr; @@ -41,6 +45,7 @@ void *silc_calloc(size_t items, size_t size) void *silc_realloc(void *ptr, size_t size) { void *addr; + assert(size >= 0 && size <= SILC_MAX_ALLOC); addr = realloc(ptr, size); assert(addr != NULL); return addr; @@ -53,7 +58,8 @@ void silc_free(void *ptr) void *silc_memdup(const void *ptr, size_t size) { - unsigned char *addr = silc_malloc(size + 1); + unsigned char *addr; + addr = silc_malloc(size + 1); assert(addr != NULL); memcpy((void *)addr, ptr, size); addr[size] = '\0';