Skip to content

Commit 06faaeb

Browse files
committed
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.
1 parent 70ce56b commit 06faaeb

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

src/event/event_epoll.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -276,11 +276,13 @@ _dispatch_unote_register(dispatch_unote_t du,
276276
}
277277
} else {
278278
dmn = _dispatch_muxnote_create(du, events);
279-
if (_dispatch_epoll_update(dmn, events, EPOLL_CTL_ADD) < 0) {
280-
_dispatch_muxnote_dispose(dmn);
281-
dmn = NULL;
282-
} else {
283-
TAILQ_INSERT_TAIL(dmb, dmn, dmn_list);
279+
if (dmn) {
280+
if (_dispatch_epoll_update(dmn, events, EPOLL_CTL_ADD) < 0) {
281+
_dispatch_muxnote_dispose(dmn);
282+
dmn = NULL;
283+
} else {
284+
TAILQ_INSERT_TAIL(dmb, dmn, dmn_list);
285+
}
284286
}
285287
}
286288

0 commit comments

Comments
 (0)