diff options
author | Mike Blumenkrantz <zmike@osg.samsung.com> | 2017-10-18 17:11:36 -0400 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2017-11-07 18:30:07 +0900 |
commit | d92ab128700f002c7bd3a19f60edb1f4e1115d22 (patch) | |
tree | 825e4ac128e6420e6a3b4a836704ac89e85da127 | |
parent | 09ff9ee26d3249d1c3bedfd3f985aeac7e0e594d (diff) | |
download | efl-d92ab128700f002c7bd3a19f60edb1f4e1115d22.tar.gz |
efl_wl: destroy extant shell surface upon surface deletion
avoid invalid reads later
@fix
-rw-r--r-- | src/lib/efl_wl/efl_wl.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/lib/efl_wl/efl_wl.c b/src/lib/efl_wl/efl_wl.c index bb11163b24..04e6320901 100644 --- a/src/lib/efl_wl/efl_wl.c +++ b/src/lib/efl_wl/efl_wl.c @@ -2254,6 +2254,12 @@ comp_surface_smart_del(Evas_Object *obj) } evas_object_del(cs->img); evas_object_del(cs->clip); + if (cs->shell.surface) + { + if (cs->role) + wl_resource_destroy(cs->role); + wl_resource_destroy(cs->shell.surface); + } cs->c->surfaces = eina_inlist_remove(cs->c->surfaces, EINA_INLIST_GET(cs)); cs->c->surfaces_count--; free(cs); |