[PATCH weston] libweston-desktop/xdg-shell-v6: Fix crash when surface has buffer at creation
Derek Foreman
derekf at osg.samsung.com
Thu Mar 15 00:07:07 UTC 2018
On 2018-03-13 01:18 PM, Quentin Glidic wrote:
> On 3/13/18 5:34 PM, Derek Foreman wrote:
>> When a surface has a buffer at creation time we send an error, which
>> results
>> in a disconnection and all resources being destroyed.
>>
>> Since we send that error and return before performing the
>> configure_list init
>> weston_desktop_xdg_surface_destroy() will walk an uninitialized list and
>> dereference a NULL pointer.
>>
>> Initializing the list earlier prevents this from happening.
>>
>> Signed-off-by: Derek Foreman <derekf at osg.samsung.com>
>
> Good catch:
> Reviewed-by: Quentin Glidic <sardemff7+git at sardemff7.net>
And pushed.
Thanks,
Derek
> Thanks,
>
>> ---
>> libweston-desktop/xdg-shell-v6.c | 3 +--
>> 1 file changed, 1 insertion(+), 2 deletions(-)
>>
>> diff --git a/libweston-desktop/xdg-shell-v6.c
>> b/libweston-desktop/xdg-shell-v6.c
>> index f9902ff0..8fa01a32 100644
>> --- a/libweston-desktop/xdg-shell-v6.c
>> +++ b/libweston-desktop/xdg-shell-v6.c
>> @@ -1370,6 +1370,7 @@
>> weston_desktop_xdg_shell_protocol_get_xdg_surface(struct wl_client
>> *wl_client,
>> surface->desktop = weston_desktop_client_get_desktop(client);
>> surface->surface = wsurface;
>> + wl_list_init(&surface->configure_list);
>> surface->desktop_surface =
>> weston_desktop_surface_create(surface->desktop, client,
>> @@ -1395,8 +1396,6 @@
>> weston_desktop_xdg_shell_protocol_get_xdg_surface(struct wl_client
>> *wl_client,
>> "xdg_surface must not have a buffer at
>> creation");
>> return;
>> }
>> -
>> - wl_list_init(&surface->configure_list);
>> }
>> static void
>>
>
>
More information about the wayland-devel
mailing list