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