mirror of
https://github.com/cuberite/libevent.git
synced 2025-09-18 08:49:57 -04:00
Check for NULL return on win32 mm_calloc, and set ENOMEM.
(It looks like windows doesn't set ENOMEM on overflow from calloc.)
This commit is contained in:
parent
7bcac07d5a
commit
af7ba6955e
11
event.c
11
event.c
@ -2827,8 +2827,15 @@ event_mm_calloc_(size_t count, size_t size)
|
|||||||
p = _mm_malloc_fn(sz);
|
p = _mm_malloc_fn(sz);
|
||||||
if (p)
|
if (p)
|
||||||
return memset(p, 0, sz);
|
return memset(p, 0, sz);
|
||||||
} else
|
} else {
|
||||||
return calloc(count, size);
|
void *p = calloc(count, size);
|
||||||
|
#ifdef _WIN32
|
||||||
|
/* Windows calloc doesn't reliably set ENOMEM */
|
||||||
|
if (p == NULL)
|
||||||
|
goto error;
|
||||||
|
#endif
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
error:
|
error:
|
||||||
errno = ENOMEM;
|
errno = ENOMEM;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user