event-loop: use static buffer instead of stack allocation buffer

alloca() isn't a good idea to use, in general, because it provides
undefined behavior when it fails.

This commit changes the epoll event buffer from being stack allocated
to static to avoid any potentially problems resulting from stack
space exhaustion.

https://bugs.freedesktop.org/show_bug.cgi?id=41562
calculate-0.9.5
James Hunt 13 years ago committed by Ray Strode
parent 788db29334
commit 7e934255c5

@ -1255,13 +1255,10 @@ void
ply_event_loop_process_pending_events (ply_event_loop_t *loop)
{
int number_of_received_events, i;
struct epoll_event *events = NULL;
static struct epoll_event events[PLY_EVENT_LOOP_NUM_EVENT_HANDLERS];
assert (loop != NULL);
events =
alloca (PLY_EVENT_LOOP_NUM_EVENT_HANDLERS * sizeof (struct epoll_event));
memset (events, -1,
PLY_EVENT_LOOP_NUM_EVENT_HANDLERS * sizeof (struct epoll_event));

Loading…
Cancel
Save