diff options
author | Mike Blumenkrantz <zmike@osg.samsung.com> | 2017-06-23 17:43:58 -0400 |
---|---|---|
committer | Mike Blumenkrantz <zmike@osg.samsung.com> | 2017-06-23 17:43:44 -0400 |
commit | 8c8dae5720327dad5a964036df01af16ff8f63a7 (patch) | |
tree | 8b5fead34abf3f91d771ae9353f81cdbf96cd882 | |
parent | 3d098097bfd9c93c92de4a32b5f7dc7d44be4295 (diff) | |
download | efl-8c8dae5720327dad5a964036df01af16ff8f63a7.tar.gz |
evas: check object layer existence before deref to avoid crash
@fix
-rw-r--r-- | src/lib/evas/canvas/evas_object_smart.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lib/evas/canvas/evas_object_smart.c b/src/lib/evas/canvas/evas_object_smart.c index 0e3fcd94a8..c1421075cb 100644 --- a/src/lib/evas/canvas/evas_object_smart.c +++ b/src/lib/evas/canvas/evas_object_smart.c @@ -366,7 +366,9 @@ _efl_canvas_group_group_member_del(Eo *smart_obj, Evas_Smart_Data *_pd EINA_UNUS // Layer usage shouldn't reach 0 here (as parent is still in layer) obj->layer->usage--; } - evas_object_inject(eo_obj, obj, obj->layer->evas->evas); + /* layer may be destroyed in evas_object_release() call */ + if (obj->layer) + evas_object_inject(eo_obj, obj, obj->layer->evas->evas); obj->restack = 1; evas_object_change(eo_obj, obj); evas_object_mapped_clip_across_mark(eo_obj, obj); |