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
This commit is contained in:
Carsten Haitzler 2017-07-23 18:53:46 +09:00
parent 6a65cb2f3c
commit b3b0411a05
1 changed files with 5 additions and 3 deletions

View File

@ -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);
}