void *
reallocarray(void *optr, size_t nmemb, size_t size)
{
if ((nmemb >= MUL_NO_OVERFLOW || size >= MUL_NO_OVERFLOW) &&
if (((nmemb >= MUL_NO_OVERFLOW || size >= MUL_NO_OVERFLOW) &&
nmemb > 0 && SIZE_MAX / nmemb < size) {
nmemb > 0 && SIZE_MAX / nmemb < size) ||
(nmemb * size <= 0)) {
errno = ENOMEM;
return NULL;
}
-