summaryrefslogtreecommitdiffstats
path: root/lib/tevent
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2015-03-02 16:17:54 -0800
committerDavid Disseldorp <ddiss@samba.org>2015-03-03 17:33:06 +0100
commit7be3a5f92ddbb378a3c80e455cb7403f7861efa1 (patch)
treecd996d37090742289bc770af61e08ee49346c342 /lib/tevent
parent38628b1e32cb480cbd0cef57a34a9fe0216f344c (diff)
downloadsamba-7be3a5f92ddbb378a3c80e455cb7403f7861efa1.tar.gz
samba-7be3a5f92ddbb378a3c80e455cb7403f7861efa1.tar.xz
samba-7be3a5f92ddbb378a3c80e455cb7403f7861efa1.zip
tevent: Ignore unexpected signal events in the same way the epoll backend does.
Bug: https://bugzilla.samba.org/show_bug.cgi?id=11118 Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: David Disseldorp <ddiss@samba.org> Autobuild-User(master): David Disseldorp <ddiss@samba.org> Autobuild-Date(master): Tue Mar 3 17:33:06 CET 2015 on sn-devel-104
Diffstat (limited to 'lib/tevent')
-rw-r--r--lib/tevent/tevent_port.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/tevent/tevent_port.c b/lib/tevent/tevent_port.c
index 93e94b2158..dd4958e86a 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) {