Skip to content
Snippets Groups Projects
Commit 690ead4a authored by Stencel, Joanna's avatar Stencel, Joanna Committed by Emil Velikov
Browse files

egl/wayland-egl: Fix for segfault in dri2_wl_destroy_surface.


Segfault occurs when destroying EGL surface attached to already destroyed
Wayland window. The fix is to set to NULL the pointer of surface's
native window when wl_egl_destroy_window() is called.

Cc: mesa-stable@lists.freedesktop.org
Signed-off-by: default avatarStencel, Joanna <joanna.stencel@intel.com>
Reviewed-by: Eric Engestrom's avatarEric Engestrom <eric@engestrom.ch>
Reviewed-by: default avatarEmil Velikov <emil.velikov@collabora.com>
parent f033d971
No related branches found
No related tags found
No related merge requests found
......@@ -27,6 +27,7 @@ struct wl_egl_window {
void *private;
void (*resize_callback)(struct wl_egl_window *, void *);
void (*destroy_window_callback)(void *);
};
#ifdef __cplusplus
......
......@@ -66,6 +66,7 @@ wl_egl_window_create(struct wl_surface *surface,
egl_window->surface = surface;
egl_window->private = NULL;
egl_window->resize_callback = NULL;
egl_window->destroy_window_callback = NULL;
wl_egl_window_resize(egl_window, width, height, 0, 0);
egl_window->attached_width = 0;
egl_window->attached_height = 0;
......@@ -76,6 +77,8 @@ wl_egl_window_create(struct wl_surface *surface,
WL_EGL_EXPORT void
wl_egl_window_destroy(struct wl_egl_window *egl_window)
{
if (egl_window->destroy_window_callback)
egl_window->destroy_window_callback(egl_window->private);
free(egl_window);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment