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@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to