[Spice-devel] [PATCH 2/9] server/red_worker: red_draw_qxl_drawable: protect from NULL dereference in case of buggy driver (or recording)

Frediano Ziglio fziglio at redhat.com
Wed Oct 21 05:15:44 PDT 2015


> 
> From: Alon Levy <alon at pobox.com>
> 
> ---
>  server/red_worker.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/server/red_worker.c b/server/red_worker.c
> index ef529f1..225c272 100644
> --- a/server/red_worker.c
> +++ b/server/red_worker.c
> @@ -4203,6 +4203,11 @@ static void red_draw_qxl_drawable(RedWorker *worker,
> Drawable *drawable)
>  
>      image_cache_aging(&worker->image_cache);
>  
> +    if (!canvas) {
> +        spice_warning("ignoring drawable to destroyed surface %d\n",
> drawable->surface_id);
> +        return;
> +    }
> +
>      region_add(&surface->draw_dirty_region, &drawable->red_drawable->bbox);
>  
>      switch (drawable->red_drawable->type) {

This is quite odd... when a surface is freed all drawables referring to that
surface are freed. So if this happens it means that the memory status is not
correct. I would replace perhaps with an assert instead.

Alon, this this condition happened ?

Frediano


More information about the Spice-devel mailing list