aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii2026-03-07 09:49:22 +0200
committerEli Zaretskii2026-03-07 09:49:22 +0200
commit06471a82c82a9eb1beb4bb49e844af67e2d69b9e (patch)
treebb6ddf9686548e17296d6bdab21ee990fa42d5d1 /src
parentb7aca342e69c398cc8c3a7b8557ccf19cf7d444b (diff)
downloademacs-06471a82c82a9eb1beb4bb49e844af67e2d69b9e.tar.gz
emacs-06471a82c82a9eb1beb4bb49e844af67e2d69b9e.zip
Fix segfaults in 'kbd_buffer_get_event'
* src/keyboard.c (kbd_buffer_get_event): Ignore selection-request events when accessing the frame of an event. Suggested by dick r. chiang <dick.r.chiang@gmail.com>. (Bug#80558)
Diffstat (limited to 'src')
-rw-r--r--src/keyboard.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/keyboard.c b/src/keyboard.c
index 8753bebce9c..c16cc5277e9 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -4201,7 +4201,11 @@ kbd_buffer_get_event (KBOARD **kbp,
4201 if (*kbp == 0) 4201 if (*kbp == 0)
4202 *kbp = current_kboard; /* Better than returning null ptr? */ 4202 *kbp = current_kboard; /* Better than returning null ptr? */
4203 4203
4204 if (FRAMEP (event->ie.frame_or_window)) 4204 /* Selection-request events never have frames, they are actually
4205 instances of 'struct selection_input_event'. */
4206 if (!(event->kind == SELECTION_REQUEST_EVENT
4207 || event->kind == SELECTION_CLEAR_EVENT)
4208 && FRAMEP (event->ie.frame_or_window))
4205 *event_frame = XFRAME (event->ie.frame_or_window); 4209 *event_frame = XFRAME (event->ie.frame_or_window);
4206 4210
4207 obj = Qnil; 4211 obj = Qnil;