diff --git a/src/system/kernel/heap.cpp b/src/system/kernel/heap.cpp index 9fb146c3b5..abd9bbdbd9 100644 --- a/src/system/kernel/heap.cpp +++ b/src/system/kernel/heap.cpp @@ -2482,6 +2482,9 @@ realloc(void *address, size_t newSize) void * calloc(size_t numElements, size_t size) { + if (size != 0 && numElements > (((size_t)(-1)) / size)) + return NULL; + void *address = malloc(numElements * size); if (address != NULL) memset(address, 0, numElements * size);