From 025b657ed65e6752ce61b148bfa487d7351054a6 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Mon, 2 Mar 2015 16:17:54 -0800 Subject: [PATCH] lib: tevent: Ignore unexpected signal events in the same way the epoll backend does. https://bugzilla.samba.org/show_bug.cgi?id=11118 Signed-off-by: Jeremy Allison --- lib/tevent/tevent_port.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/tevent/tevent_port.c b/lib/tevent/tevent_port.c index 93e94b2..dd4958e 100644 --- a/lib/tevent/tevent_port.c +++ b/lib/tevent/tevent_port.c @@ -483,10 +483,16 @@ static int port_event_loop(struct port_event_context *port_ev, struct timeval *t port_errno = errno; tevent_trace_point_callback(ev, TEVENT_TRACE_AFTER_WAIT); - if (ret == -1 && port_errno == EINTR && ev->signal_events) { - if (tevent_common_check_signal(ev)) { - return 0; + if (ret == -1 && port_errno == EINTR) { + if (ev->signal_events) { + tevent_common_check_signal(ev); } + /* + * If no signal handlers we got an unsolicited + * signal wakeup. This can happen with epoll + * too. Just return and ignore. + */ + return 0; } if (ret == -1 && port_errno == ETIME && tvalp) { -- 2.2.0.rc0.207.ga3a616c