On 11/01/16 04:45 AM, Marek Chalupa wrote:
> if display_resource = wl_resource_create() fails in bind_display(),
> we call wl_client_post_no_memory() which is wrong, since this function
> uses display_resource (which is NULL at this point).
> said simply: don't send an error to resource that you've just failed to 
> create)
> 
> https://bugs.freedesktop.org/show_bug.cgi?id=91356
> 
> Reported-by: Ashim <[email protected]>
> Signed-off-by: Marek Chalupa <[email protected]>

Reviewed-by: Derek Foreman <[email protected]>

Looks good to me - instead of trying to dereference the pointer in
wl_resource_post_error() and crashing, now we'll clean up and kill the
client connection in wl_client_create(), as we should.

Thanks,
Derek

> ---
>  src/wayland-server.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/src/wayland-server.c b/src/wayland-server.c
> index 9e26b18..017a975 100644
> --- a/src/wayland-server.c
> +++ b/src/wayland-server.c
> @@ -778,7 +778,8 @@ bind_display(struct wl_client *client, struct wl_display 
> *display)
>       client->display_resource =
>               wl_resource_create(client, &wl_display_interface, 1, 1);
>       if (client->display_resource == NULL) {
> -             wl_client_post_no_memory(client);
> +             /* DON'T send no-memory error to client - it has no
> +              * resource to which it could post the event */
>               return -1;
>       }
>  
> 

_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to