Commit d53eef0d9411a94cdb0f21e2cd6cb072ea387377

Ran Benita 2014-02-09T10:27:45

x11: add 0 < ctrls->numGroups <= 4 assertion This only happens if something is wrong in the server; a valid keymap cannot be had in any case. Signed-off-by: Ran Benita <ran234@gmail.com>

1
2
3
4
5
6
7
8
9
10
11
12
diff --git a/src/x11/keymap.c b/src/x11/keymap.c
index aa91033..4c6b29c 100644
--- a/src/x11/keymap.c
+++ b/src/x11/keymap.c
@@ -1099,6 +1099,7 @@ get_controls(struct xkb_keymap *keymap, xcb_connection_t *conn,
         xcb_xkb_get_controls_reply(conn, cookie, NULL);
 
     FAIL_IF_BAD_REPLY(reply, "XkbGetControls");
+    FAIL_UNLESS(reply->numGroups > 0 && reply->numGroups <= 4);
 
     keymap->enabled_ctrls = translate_controls_mask(reply->enabledControls);
     keymap->num_groups = reply->numGroups;