From ee7bc988603ca16e6ef37fbbc377d82db37954c0 Mon Sep 17 00:00:00 2001 From: Alan Third Date: Sun, 26 Jun 2016 00:10:50 +0100 Subject: [PATCH] Prevent NS event loop being re-entered (bug#11049) * nsterm.m (ns_read_socket, ns_select): Return -1 if already in event loop instead of aborting. --- src/nsterm.m | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/nsterm.m b/src/nsterm.m index bd477a491f..a6160ed5b2 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -4098,6 +4098,9 @@ ns_read_socket (struct terminal *terminal, struct input_event *hold_quit) NSTRACE_WHEN (NSTRACE_GROUP_EVENTS, "ns_read_socket"); + if (apploopnr > 0) + return -1; /* Already within event loop. */ + #ifdef HAVE_NATIVE_FS check_native_fs (); #endif @@ -4182,6 +4185,9 @@ ns_select (int nfds, fd_set *readfds, fd_set *writefds, NSTRACE_WHEN (NSTRACE_GROUP_EVENTS, "ns_select"); + if (apploopnr > 0) + return -1; /* Already within event loop. */ + #ifdef HAVE_NATIVE_FS check_native_fs (); #endif -- 2.39.2