shell: Remove listener of surface commit. 59/217459/1
authorSeunghun Lee <shiin.lee@samsung.com>
Tue, 12 Nov 2019 03:09:06 +0000 (12:09 +0900)
committerSeunghun Lee <shiin.lee@samsung.com>
Tue, 12 Nov 2019 03:16:15 +0000 (12:16 +0900)
SIGSEGV accessing freed instance destroyed by xdg_surface_cb_resource_destroy.

Change-Id: I7cbbe345cdffed6037ba4d005450145a30cef548

src/lib/shell.c

index 9a22cb61d619b893b66939087fee9c3fb4669987..1857e31e934452bec5a060dd461cffe7a7b885fd 100644 (file)
@@ -487,6 +487,9 @@ xdg_surface_cb_resource_destroy(struct wl_resource *resource)
    if (shsurf->surface_destroy_listener)
      pepper_event_listener_remove(shsurf->surface_destroy_listener);
 
+   if (shsurf->surface_commit_listener)
+     pepper_event_listener_remove(shsurf->surface_commit_listener);
+
    if (shsurf->psurf)
      pepper_object_set_user_data((pepper_object_t *)shsurf->psurf,
                                  pepper_surface_get_role((pepper_surface_t *)shsurf->psurf),