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); }
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel