[Spice-devel] [spice-server 04/10] qxl: Fix guest resources release in red_put_drawable()

Uri Lublin uril at redhat.com
Mon Apr 16 15:51:52 UTC 2018


On 04/16/2018 01:13 PM, Christophe Fergeau wrote:
> At the moment, we'll unconditionally release the guest QXL resources in
> red_put_drawable() even if red_get_drawable() failed and did not
> initialize drawable->release_info_ext properly.
> This commit checks the QXLReleaseInfo in release_info_ext is non-0
> before attempting to release it.
> ---
>   server/red-parse-qxl.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/server/red-parse-qxl.c b/server/red-parse-qxl.c
> index dc99d1f30..80746ecbb 100644
> --- a/server/red-parse-qxl.c
> +++ b/server/red-parse-qxl.c
> @@ -1504,7 +1504,9 @@ void red_drawable_unref(RedDrawable *red_drawable)
>       if (--red_drawable->refs) {
>           return;
>       }
> -    red_qxl_release_resource(red_drawable->qxl, red_drawable->release_info_ext);
> +    if (red_drawable->release_info_ext.info != NULL) {
> +        red_qxl_release_resource(red_drawable->qxl, red_drawable->release_info_ext);

Hi Christophe,

Would it not be better to do the check in red_qxl_release_resource ?
(and also set ".info" to NULL after it is released)

Uri.
> +    }
>       red_put_drawable(red_drawable);
>       g_free(red_drawable);
>   }
> 



More information about the Spice-devel mailing list