From 8c4eef62f87b85e0e9737058b21c170b3f2d4fe6 Mon Sep 17 00:00:00 2001 From: Gwanglim Lee Date: Tue, 13 Oct 2015 14:46:53 +0900 Subject: [PATCH] ecore_wayland: add null check to fix dereference null pointer while setting up keygrab Change-Id: I8b1626027efec510d02ccc423099e9fcf8e6c0eb --- src/lib/ecore_wayland/ecore_wl.c | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/src/lib/ecore_wayland/ecore_wl.c b/src/lib/ecore_wayland/ecore_wl.c index f933d94..c1616fc 100644 --- a/src/lib/ecore_wayland/ecore_wl.c +++ b/src/lib/ecore_wayland/ecore_wl.c @@ -1079,29 +1079,32 @@ ecore_wl_window_keygrab_set(Ecore_Wl_Window *win, const char *key, int mod EINA_ wl_display_roundtrip(_ecore_wl_disp->wl.display); } - if (!_ecore_wl_disp->input->xkb.keymap) + if (_ecore_wl_disp->input) { - int loop_count = 5; - INF("Wait until keymap event occurs"); - while((!_ecore_wl_disp->input->xkb.keymap) && (loop_count > 0)) + if (!_ecore_wl_disp->input->xkb.keymap) { - wl_display_roundtrip(_ecore_wl_disp->wl.display); - loop_count--; + int loop_count = 5; + INF("Wait until keymap event occurs"); + while((!_ecore_wl_disp->input->xkb.keymap) && (loop_count > 0)) + { + wl_display_roundtrip(_ecore_wl_disp->wl.display); + loop_count--; + } + if (!_ecore_wl_disp->input->xkb.keymap) + { + ERR("Fail to keymap, conut:[%d]", loop_count); + return EINA_FALSE; + } + INF("Finish keymap event"); } - if (!_ecore_wl_disp->input->xkb.keymap) + + if (_ecore_wl_disp->input->xkb.keymap) + num_keycodes = _ecore_wl_keycode_from_keysym(_ecore_wl_disp->input->xkb.keymap, keysym, &keycodes); + else { - ERR("Fail to keymap, conut:[%d]", loop_count); + WRN("Keymap is not ready"); return EINA_FALSE; } - INF("Finish keymap event"); - } - - if (_ecore_wl_disp->input->xkb.keymap) - num_keycodes = _ecore_wl_keycode_from_keysym(_ecore_wl_disp->input->xkb.keymap, keysym, &keycodes); - else - { - WRN("Keymap is not ready"); - return EINA_FALSE; } if (num_keycodes == 0) -- 2.7.4