emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r118333: * xgselect.c (xg_select): Don't assume n_gf


From: Paul Eggert
Subject: [Emacs-diffs] trunk r118333: * xgselect.c (xg_select): Don't assume n_gfds is nonnegative
Date: Sun, 09 Nov 2014 04:19:57 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 118333
revision-id: address@hidden
parent: address@hidden
author: Paul Eggert  <address@hidden>
committer: Paul Eggert <address@hidden>
branch nick: trunk
timestamp: Sat 2014-11-08 20:19:54 -0800
message:
  * xgselect.c (xg_select): Don't assume n_gfds is nonnegative
  
  merely because tmo_in_millisec is nonnegative.  The 1st call
  to g_main_context_query could succeed while the 2nd one fails.
modified:
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/xgselect.c                 xgselect.c-20091121171556-bypaf8oo9ygoo13w-2
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2014-11-09 04:04:12 +0000
+++ b/src/ChangeLog     2014-11-09 04:19:54 +0000
@@ -1,5 +1,9 @@
 2014-11-09  Paul Eggert  <address@hidden>
 
+       * xgselect.c (xg_select): Don't assume n_gfds is nonnegative
+       merely because tmo_in_millisec is nonnegative.  The 1st call
+       to g_main_context_query could succeed while the 2nd one fails.
+
        * frame.c (Fcan_run_window_configuration_change_hook): Return a value.
 
 2014-11-08  Jan Djärv  <address@hidden>

=== modified file 'src/xgselect.c'
--- a/src/xgselect.c    2014-11-08 18:21:38 +0000
+++ b/src/xgselect.c    2014-11-09 04:19:54 +0000
@@ -56,7 +56,7 @@
   int gfds_size = ARRAYELTS (gfds_buf);
   int n_gfds, retval = 0, our_fds = 0, max_fds = fds_lim - 1;
   bool context_acquired = false;
-  int i, nfds, tmo_in_millisec = -1;
+  int i, nfds, tmo_in_millisec;
   bool need_to_dispatch;
   USE_SAFE_ALLOCA;
 
@@ -102,7 +102,7 @@
 
   SAFE_FREE ();
 
-  if (tmo_in_millisec >= 0)
+  if (n_gfds >= 0 && tmo_in_millisec >= 0)
     {
       tmo = make_timespec (tmo_in_millisec / 1000,
                           1000 * 1000 * (tmo_in_millisec % 1000));


reply via email to

[Prev in Thread] Current Thread [Next in Thread]