]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix integer-overflow bug in Time conversion
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 18 Oct 2019 20:07:49 +0000 (13:07 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Fri, 18 Oct 2019 20:23:11 +0000 (13:23 -0700)
Problem reported by Stefan Monnier (Bug#37795).
* src/keyboard.c (make_lispy_position)
(make_scroll_bar_position, make_lispy_event):
* src/xterm.c (x_ewmh_activate_frame):
Use INT_TO_INTEGER to convert Time to a Lisp integer,
since the value might not be a fixnum.

src/keyboard.c
src/xterm.c

index d67d18a801e528536be470434c093b60540e479b..db583ec530ef7f26eb7234e322e851fe270efef5 100644 (file)
@@ -5242,7 +5242,7 @@ make_lispy_position (struct frame *f, Lisp_Object x, Lisp_Object y,
                Fcons (posn,
                       Fcons (Fcons (make_fixnum (xret),
                                     make_fixnum (yret)),
-                             Fcons (make_fixnum (t),
+                             Fcons (INT_TO_INTEGER (t),
                                     extra_info))));
 }
 
@@ -5267,7 +5267,7 @@ static Lisp_Object
 make_scroll_bar_position (struct input_event *ev, Lisp_Object type)
 {
   return list5 (ev->frame_or_window, type, Fcons (ev->x, ev->y),
-               make_fixnum (ev->timestamp),
+               INT_TO_INTEGER (ev->timestamp),
                builtin_lisp_symbol (scroll_bar_parts[ev->part]));
 }
 
@@ -5579,7 +5579,7 @@ make_lispy_event (struct input_event *event)
                    position = list4 (event->frame_or_window,
                                      Qmenu_bar,
                                      Fcons (event->x, event->y),
-                                     make_fixnum (event->timestamp));
+                                     INT_TO_INTEGER (event->timestamp));
 
                    return list2 (item, position);
                  }
index 5d8b1482a6df7a267b8821d53829191d51b9f135..045589534fbdb3d948217104cfddb2c1df64b392 100644 (file)
@@ -11589,7 +11589,8 @@ x_ewmh_activate_frame (struct frame *f)
       x_send_client_event (frame, make_fixnum (0), frame,
                           dpyinfo->Xatom_net_active_window,
                           make_fixnum (32),
-                          list2i (1, dpyinfo->last_user_time));
+                          list2 (make_fixnum (1),
+                                 INT_TO_INTEGER (dpyinfo->last_user_time)));
     }
 }