emacs-diffs
[Top][All Lists]
Advanced

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

master 44e5339e82: Improve safety of handling unsupported drop events on


From: Po Lu
Subject: master 44e5339e82: Improve safety of handling unsupported drop events on X
Date: Sun, 15 May 2022 23:06:18 -0400 (EDT)

branch: master
commit 44e5339e82fa9d92542558cba997cab6d605f59b
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    Improve safety of handling unsupported drop events on X
    
    * src/keyboard.c (kbd_buffer_get_event):
    * src/xterm.c (handle_one_xevent): Check that the event frame is
    still live after calling arbitrary Lisp code.
---
 src/keyboard.c | 5 +++++
 src/xterm.c    | 5 +++++
 2 files changed, 10 insertions(+)

diff --git a/src/keyboard.c b/src/keyboard.c
index e8f51f8a6f..6c114986b7 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -4041,6 +4041,11 @@ kbd_buffer_get_event (KBOARD **kbp,
                break;
            }
 
+         /* `x-dnd-unsupported-drop-function' could have deleted the
+            event frame.  */
+         if (!FRAME_LIVE_P (f))
+           break;
+
          x_dnd_do_unsupported_drop (FRAME_DISPLAY_INFO (f),
                                     event->ie.frame_or_window,
                                     XCAR (event->ie.arg),
diff --git a/src/xterm.c b/src/xterm.c
index 775b114434..54edefa3c1 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -10112,6 +10112,11 @@ x_dnd_begin_drag_and_drop (struct frame *f, Time time, 
Atom xaction,
            continue;
        }
 
+      /* `x-dnd-unsupported-drop-function' could have deleted the
+        event frame.  */
+      if (!FRAME_LIVE_P (event_frame))
+       continue;
+
       x_dnd_do_unsupported_drop (FRAME_DISPLAY_INFO (event_frame),
                                 event->ie.frame_or_window,
                                 XCAR (event->ie.arg),



reply via email to

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