summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2017-10-18 17:11:36 -0400
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2017-11-07 18:30:07 +0900
commitd92ab128700f002c7bd3a19f60edb1f4e1115d22 (patch)
tree825e4ac128e6420e6a3b4a836704ac89e85da127
parent09ff9ee26d3249d1c3bedfd3f985aeac7e0e594d (diff)
downloadefl-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.c6
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);