[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 4fbda46: Prevent crashes in xg_select due to concur
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] master 4fbda46: Prevent crashes in xg_select due to concurrency |
Date: |
Thu, 15 Dec 2016 16:20:45 +0000 (UTC) |
branch: master
commit 4fbda463dca50f630c31a2602bd34849f4b51e51
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>
Prevent crashes in xg_select due to concurrency
* src/xgselect.c (xg_select): Don't call Glib functions that use
'context' if we failed to acquire it. This means some other
thread owns the context, in which case both using the context and
calling block_input/unblock_input will step on that thread's toes
and eventually lead to crashes. (Bug#25172)
---
src/xgselect.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/xgselect.c b/src/xgselect.c
index 2f23764..a9461a5 100644
--- a/src/xgselect.c
+++ b/src/xgselect.c
@@ -150,7 +150,7 @@ xg_select (int fds_lim, fd_set *rfds, fd_set *wfds, fd_set
*efds,
#else
need_to_dispatch = true;
#endif
- if (need_to_dispatch)
+ if (need_to_dispatch && context_acquired)
{
int pselect_errno = errno;
/* Prevent g_main_dispatch recursion, that would occur without
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 4fbda46: Prevent crashes in xg_select due to concurrency,
Eli Zaretskii <=