fix out-of-bounds access to consumed[]

This commit is contained in:
save196
2026-11-09 22:25:17 +02:00
parent 8ab0c16f3c
commit 86a30c4af2
2 changed files with 4 additions and 3 deletions
+3 -2
View File
@@ -1835,7 +1835,8 @@ keypress(struct wl_listener *listener, void *data)
for (int i = 0; i < 2; i++) {
const Key *key = keybinding(group->mods, group->keysyms[i]);
if (key) {
consumed[event->keycode] = 1;
if (event->keycode < LENGTH(consumed))
consumed[event->keycode] = 1;
key->func(&key->arg);
handled = 1;
break;
@@ -1852,7 +1853,7 @@ keypress(struct wl_listener *listener, void *data)
if (handled || input_method_keyboard_grab_forward_key(group, event))
return;
if (consumed[event->keycode]) {
if (event->keycode < LENGTH(consumed) && consumed[event->keycode]) {
if (event->state == WL_KEYBOARD_KEY_STATE_RELEASED)
consumed[event->keycode] = 0;
return; /* Don't pass to the client the release event of a handled key-press */