diff options
author | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2017-07-23 18:53:46 +0900 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2017-07-23 18:53:46 +0900 |
commit | b3b0411a05165b121da46ef9718e8a1d628a76bd (patch) | |
tree | 5460d8de6a7cc1c3b47ded2ad27d9f7da11f8571 | |
parent | 6a65cb2f3c294e49dfe6dc895519eb08873bdb2b (diff) | |
download | efl-b3b0411a05165b121da46ef9718e8a1d628a76bd.tar.gz |
evas callbacks - check if obj->events is valid because it's cow alloced
it COULD be null and we do have other checks for it being not-null and
we dont check if the alloc fails... so check. this SHOULD fix
CID 1377547
-rw-r--r-- | src/lib/evas/canvas/evas_callbacks.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/lib/evas/canvas/evas_callbacks.c b/src/lib/evas/canvas/evas_callbacks.c index 33d1e76aca..a6f3ee419e 100644 --- a/src/lib/evas/canvas/evas_callbacks.c +++ b/src/lib/evas/canvas/evas_callbacks.c @@ -436,13 +436,15 @@ evas_object_event_callback_call(Evas_Object *eo_obj, Evas_Object_Protected_Data nothing_here: if (!obj->no_propagate) { - if ((obj->smart.parent || obj->events->parent) && (type != EVAS_CALLBACK_FREE) && - (type <= EVAS_CALLBACK_KEY_UP)) + if ((obj->smart.parent || ((obj->events) && obj->events->parent)) && + (type != EVAS_CALLBACK_FREE) && + (type <= EVAS_CALLBACK_KEY_UP)) { Evas_Object_Protected_Data *parent_obj; Eo *parent; - parent = obj->events->parent ?: obj->smart.parent; + parent = ((obj->events) && obj->events->parent) ? + obj->events->parent: obj->smart.parent; parent_obj = efl_data_scope_get(parent, EFL_CANVAS_OBJECT_CLASS); evas_object_event_callback_call(parent, parent_obj, type, event_info, event_id, efl_event_desc); } |