XkbGetKeyboard may return zero instead of a valid atom in names->keycodes in some cases. XGetAtomName(dpy, 0) results in BadAtom error and crashes qemu.
Signed-off-by: Alex Suykov <alex.suy...@gmail.com> --- ui/sdl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/sdl.c b/ui/sdl.c index f6f711c..e74b892 100644 --- a/ui/sdl.c +++ b/ui/sdl.c @@ -269,7 +269,7 @@ static int check_for_evdev(void) desc = XkbGetKeyboard(info.info.x11.display, XkbGBN_AllComponentsMask, XkbUseCoreKbd); - if (desc && desc->names) { + if (desc && desc->names && desc->names->keycodes) { keycodes = XGetAtomName(info.info.x11.display, desc->names->keycodes); if (keycodes == NULL) { fprintf(stderr, "could not lookup keycode name\n"); -- 1.7.11.1