e_keyrouter: fix a memory leak in _e_keyrouter_long_timer() 99/224899/2
authorSung-Jin Park <sj76.park@samsung.com>
Fri, 14 Feb 2020 04:09:39 +0000 (13:09 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Fri, 14 Feb 2020 04:31:09 +0000 (13:31 +0900)
Change-Id: I5e0c6998bb5a62b4e57a6a7a77370a5b91c4e90f
Signed-off-by: Sung-Jin Park <sj76.park@samsung.com>
src/bin/e_keyrouter_events.c

index 28afc57edaab78330471c43240bea9354cb8dde4..d055e4f2d509dec26e62eb8f93d58e38bbac5c08 100644 (file)
@@ -188,6 +188,7 @@ failed:
 static Eina_Bool
 _e_keyrouter_long_timer(void *data)
 {
+   char *keyname;
    E_Keyrouter_Event_Key_Long *ev;
 
    ev = E_NEW(E_Keyrouter_Event_Key_Long, 1);
@@ -204,8 +205,13 @@ _e_keyrouter_long_timer(void *data)
    _e_keyrouter_key_cancel(krt->longkey.key);
    ecore_event_add(E_KEYROUTER_EVENT_KEY_LONG, ev, NULL, NULL);
 
-   KLINF("LONGKEY : %s(%d) long press event is generated.\n",
-          e_keyrouter_util_keyname_get_from_keycode(krt->longkey.key), krt->longkey.key);
+   keyname = e_keyrouter_util_keyname_get_from_keycode(krt->longkey.key);
+   if (keyname)
+     {
+        KLINF("LONGKEY : %s(%d) long press event is generated.\n", keyname, krt->longkey.key);
+        free(keyname);
+        keyname = NULL;
+     }
 
    krt->longkey.timer = NULL;