efl_wl: destroy extant shell surface upon surface deletion
authorMike Blumenkrantz <zmike@osg.samsung.com>
Wed, 18 Oct 2017 21:11:36 +0000 (17:11 -0400)
committerMike Blumenkrantz <zmike@osg.samsung.com>
Wed, 25 Oct 2017 14:44:16 +0000 (10:44 -0400)
avoid invalid reads later

@fix

src/lib/efl_wl/efl_wl.c

index 2bdb222..9eec04e 100644 (file)
@@ -2301,6 +2301,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);