devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=1c59062cda9227124f6eada25d2259c5fff5c97a
commit 1c59062cda9227124f6eada25d2259c5fff5c97a Author: Chris Michael <cp.mich...@samsung.com> Date: Tue Jun 30 09:10:54 2015 -0400 e-comp-wl: Don't crash from a missing keymap This fixes T2531 where E would crash if the keymap could not be fetched from xkb. Now if no keymap rules, model, or layout are passed in we will default to a US keymap. Signed-off-by: Chris Michael <cp.mich...@samsung.com> --- src/bin/e_comp_wl_input.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/bin/e_comp_wl_input.c b/src/bin/e_comp_wl_input.c index 2e5fdce..5726132 100644 --- a/src/bin/e_comp_wl_input.c +++ b/src/bin/e_comp_wl_input.c @@ -541,8 +541,11 @@ e_comp_wl_input_keymap_set(const char *rules, const char *model, const char *lay /* assemble xkb_rule_names so we can fetch keymap */ memset(&names, 0, sizeof(names)); if (rules) names.rules = strdup(rules); + else names.rules = strdup("evdev"); if (model) names.model = strdup(model); + else names.model = strdup("pc105"); if (layout) names.layout = strdup(layout); + else names.layout = strdup("us"); /* unreference any existing context */ if (e_comp->wl_comp_data->xkb.context) xkb_context_unref(e_comp->wl_comp_data->xkb.context); @@ -552,9 +555,11 @@ e_comp_wl_input_keymap_set(const char *rules, const char *model, const char *lay /* fetch new keymap based on names */ keymap = xkb_map_new_from_names(e_comp->wl_comp_data->xkb.context, &names, 0); - - /* update compositor keymap */ - _e_comp_wl_input_keymap_update(keymap); + if (keymap) + { + /* update compositor keymap */ + _e_comp_wl_input_keymap_update(keymap); + } /* cleanup */ free((char *)names.rules); --