From 504cc0b858fefac8ea7e8911e60c1b961e225ec4 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Thu, 22 Mar 2012 14:31:33 +0000 Subject: [PATCH] Check for invalid indices in mod/group state API Signed-off-by: Daniel Stone --- src/state.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/state.c b/src/state.c index d63d4c9..1802f84 100644 --- a/src/state.c +++ b/src/state.c @@ -472,6 +472,9 @@ int xkb_state_mod_index_is_active(struct xkb_state *state, { int ret = 0; + if (idx >= xkb_map_num_mods(state->xkb)) + return -1; + if (type & XKB_STATE_DEPRESSED) ret |= (state->base_mods & (1 << idx)); if (type & XKB_STATE_LATCHED) @@ -507,6 +510,9 @@ int xkb_state_group_index_is_active(struct xkb_state *state, { int ret = 0; + if (idx >= xkb_map_num_groups(state->xkb)) + return -1; + if (type & XKB_STATE_DEPRESSED) ret |= (state->base_group == idx); if (type & XKB_STATE_LATCHED) -- 2.7.4