[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 07/26] qemu-keymap: properly check return from xkb_keymap_mod_get
From: |
Alex Bennée |
Subject: |
[PATCH 07/26] qemu-keymap: properly check return from xkb_keymap_mod_get_index |
Date: |
Fri, 23 Jun 2023 13:20:41 +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
- Re: [PATCH 01/26] gitlab: explicit set artifacts publishing criteria, (continued)
- [PATCH 06/26] qemu-keymap: use modern name for Arabic keymap, Alex Bennée, 2023/06/23
- [PATCH 04/26] docs/devel: remind developers to run CI container pipeline when updating images, Alex Bennée, 2023/06/23
- [PATCH 02/26] gitlab: ensure coverage job also publishes meson log, Alex Bennée, 2023/06/23
- [PATCH 05/26] tests/tcg: add mechanism to handle plugin arguments, Alex Bennée, 2023/06/23
- [PATCH 08/26] scripts/oss-fuzz: add a suppression for keymap, Alex Bennée, 2023/06/23
- [PATCH 12/26] tests/lcitool: update to latest version, Alex Bennée, 2023/06/23
- [PATCH 15/26] tests/lcitool: introduce qemu-minimal, Alex Bennée, 2023/06/23
- [PATCH 14/26] tests/lcitool: add an explicit gcc-native package, Alex Bennée, 2023/06/23
- [PATCH 07/26] qemu-keymap: properly check return from xkb_keymap_mod_get_index,
Alex Bennée <=
- [PATCH 10/26] tests/docker: add test-fuzz, Alex Bennée, 2023/06/23
- [PATCH 09/26] tests/qtests: clean-up and fix leak in generic_fuzz, Alex Bennée, 2023/06/23
- [PATCH 16/26] tests/docker: convert riscv64-cross to lcitool, Alex Bennée, 2023/06/23
- [PATCH 11/26] Makefile: add lcitool-refresh to UNCHECKED_GOALS, Alex Bennée, 2023/06/23
- [PATCH 13/26] tests/lcitool: Bump fedora container versions, Alex Bennée, 2023/06/23
- [PATCH 19/26] plugins: fix memory leak while parsing options, Alex Bennée, 2023/06/23
- [PATCH 24/26] docs/devel/qom.rst: Correct code style, Alex Bennée, 2023/06/23