From 7e934255c502d7a5e75f7a5c86d904516abb13de Mon Sep 17 00:00:00 2001 From: James Hunt Date: Fri, 7 Oct 2011 16:32:46 +0100 Subject: [PATCH] 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 --- src/libply/ply-event-loop.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/libply/ply-event-loop.c b/src/libply/ply-event-loop.c index a418c4ef..acfdc5db 100644 --- a/src/libply/ply-event-loop.c +++ b/src/libply/ply-event-loop.c @@ -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));