[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 6/6] qemu-keymap: properly check return from xkb_keymap_mod_ge
From: |
Alex Bennée |
Subject: |
[PATCH v2 6/6] qemu-keymap: properly check return from xkb_keymap_mod_get_index |
Date: |
Mon, 26 Jun 2023 21:25:15 +0100 |
We can return XKB_MOD_INVALID which rightly gets flagged by sanitisers
as an overly wide shift attempt.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
qemu-keymap.c | 24 ++++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)
diff --git a/qemu-keymap.c b/qemu-keymap.c
index 229866e004..8c80f7a4ed 100644
--- a/qemu-keymap.c
+++ b/qemu-keymap.c
@@ -140,6 +140,18 @@ static void usage(FILE *out)
names.options ?: "-");
}
+static xkb_mod_mask_t get_mod(struct xkb_keymap *map, const char *name)
+{
+ xkb_mod_index_t mod;
+ xkb_mod_mask_t mask = 0;
+
+ mod = xkb_keymap_mod_get_index(map, name);
+ if (mod != XKB_MOD_INVALID) {
+ mask = (1 << mod);
+ }
+ return mask;
+}
+
int main(int argc, char *argv[])
{
struct xkb_context *ctx;
@@ -215,14 +227,10 @@ int main(int argc, char *argv[])
mod, xkb_keymap_mod_get_name(map, mod));
}
- mod = xkb_keymap_mod_get_index(map, "Shift");
- shift = (1 << mod);
- mod = xkb_keymap_mod_get_index(map, "Control");
- ctrl = (1 << mod);
- mod = xkb_keymap_mod_get_index(map, "AltGr");
- altgr = (1 << mod);
- mod = xkb_keymap_mod_get_index(map, "NumLock");
- numlock = (1 << mod);
+ shift = get_mod(map, "Shift");
+ ctrl = get_mod(map, "Control");
+ altgr = get_mod(map, "AltGr");
+ numlock = get_mod(map, "NumLock");
state = xkb_state_new(map);
xkb_keymap_key_for_each(map, walk_map, state);
--
2.39.2
- [PATCH v2 0/6] maintainer omnibus: testing, fuzz, plugins, documentation, Alex Bennée, 2023/06/26
- [PATCH v2 3/6] gitlab: reduce testing scope of check-gcov, Alex Bennée, 2023/06/26
- [PATCH v2 6/6] qemu-keymap: properly check return from xkb_keymap_mod_get_index,
Alex Bennée <=
- [PATCH v2 4/6] docs/devel: remind developers to run CI container pipeline when updating images, Alex Bennée, 2023/06/26
- [PATCH v2 2/6] gitlab: ensure coverage job also publishes meson log, Alex Bennée, 2023/06/26
- [PATCH v2 1/6] gitlab: explicit set artifacts publishing criteria, Alex Bennée, 2023/06/26
- [PATCH v2 5/6] tests/tcg: add mechanism to handle plugin arguments, Alex Bennée, 2023/06/26