From 06faaebb0bdc1788186b00e577bc43d695f6eea6 Mon Sep 17 00:00:00 2001 From: David Grove Date: Thu, 7 Sep 2017 17:37:40 -0400 Subject: [PATCH] SR-4677: avoid SIGSEGV if _dispatch_muxnote_create returns NULL It is possible for _dispatch_muxnote_create to return NULL, this error condition was not being handled in dispatch_unote_register leading to an immediate SIGSEGV when it happened. --- src/event/event_epoll.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/event/event_epoll.c b/src/event/event_epoll.c index a3dc17ced..5b8fe79b5 100644 --- a/src/event/event_epoll.c +++ b/src/event/event_epoll.c @@ -276,11 +276,13 @@ _dispatch_unote_register(dispatch_unote_t du, } } else { dmn = _dispatch_muxnote_create(du, events); - if (_dispatch_epoll_update(dmn, events, EPOLL_CTL_ADD) < 0) { - _dispatch_muxnote_dispose(dmn); - dmn = NULL; - } else { - TAILQ_INSERT_TAIL(dmb, dmn, dmn_list); + if (dmn) { + if (_dispatch_epoll_update(dmn, events, EPOLL_CTL_ADD) < 0) { + _dispatch_muxnote_dispose(dmn); + dmn = NULL; + } else { + TAILQ_INSERT_TAIL(dmb, dmn, dmn_list); + } } }