xmalloc: fix edge case handling in xcalloc() function

This commit is contained in:
Craig Barnes 2020-08-25 20:49:24 +01:00
parent 139f59c27d
commit fe9eaf3aaf

View file

@ -1,3 +1,4 @@
#include <assert.h>
#include <errno.h>
#include <stdarg.h>
#include <stdio.h>
@ -36,10 +37,8 @@ xmalloc(size_t size)
void *
xcalloc(size_t nmemb, size_t size)
{
if (unlikely(nmemb == 0 || size == 0)) {
size = 1;
}
return check_alloc(calloc(nmemb, size));
assert(size != 0);
return check_alloc(calloc(likely(nmemb) ? nmemb : 1, size));
}
void *