Blame SOURCES/0022-spice-utils-allocate-ctx-after-g_return_val_if_fail.patch

7492b2
From 1068e4d0e39f3d8f3390102863a02eaed7ee81b1 Mon Sep 17 00:00:00 2001
7492b2
From: Uri Lublin <uril@redhat.com>
7492b2
Date: Mon, 23 Nov 2020 15:38:43 +0200
7492b2
Subject: [PATCH 22/22] spice-utils: allocate ctx after g_return_val_if_fail
7492b2
7492b2
Fix the following issue:
7492b2
  Error: RESOURCE_LEAK
7492b2
  src/spice-util.c:235: alloc_fn: Storage is returned
7492b2
         from allocation function "whc_new".
7492b2
  src/spice-util.c:235: var_assign: Assigning: "ctx" =
7492b2
         storage returned from "whc_new(instance_obj, gobject)".
7492b2
  src/spice-util.c:237: leaked_storage: Variable "ctx"
7492b2
         going out of scope leaks the storage it points to.
7492b2
7492b2
  235|       WeakHandlerCtx *ctx = whc_new (instance_obj, gobject);
7492b2
  236|
7492b2
  237|->     g_return_val_if_fail (G_TYPE_CHECK_INSTANCE (instance), 0);
7492b2
  238|       g_return_val_if_fail (detailed_signal != NULL, 0);
7492b2
  239|       g_return_val_if_fail (c_handler != NULL, 0);
7492b2
7492b2
Signed-off-by: Uri Lublin <uril@redhat.com>
7492b2
---
7492b2
 src/spice-util.c | 2 +-
7492b2
 1 file changed, 1 insertion(+), 1 deletion(-)
7492b2
7492b2
diff --git a/src/spice-util.c b/src/spice-util.c
7492b2
index 1e49982..d0c56ba 100644
7492b2
--- a/src/spice-util.c
7492b2
+++ b/src/spice-util.c
7492b2
@@ -231,7 +231,6 @@ gulong spice_g_signal_connect_object (gpointer instance,
7492b2
                                       GConnectFlags connect_flags)
7492b2
 {
7492b2
     GObject *instance_obj = G_OBJECT (instance);
7492b2
-    WeakHandlerCtx *ctx = whc_new (instance_obj, gobject);
7492b2
 
7492b2
     g_return_val_if_fail (G_TYPE_CHECK_INSTANCE (instance), 0);
7492b2
     g_return_val_if_fail (detailed_signal != NULL, 0);
7492b2
@@ -240,6 +239,7 @@ gulong spice_g_signal_connect_object (gpointer instance,
7492b2
     g_return_val_if_fail (
7492b2
                           (connect_flags & ~(G_CONNECT_AFTER|G_CONNECT_SWAPPED)) == 0, 0);
7492b2
 
7492b2
+    WeakHandlerCtx *ctx = whc_new (instance_obj, gobject);
7492b2
     if (connect_flags & G_CONNECT_SWAPPED)
7492b2
         ctx->closure = g_cclosure_new_object_swap (c_handler, gobject);
7492b2
     else
7492b2
-- 
7492b2
2.28.0
7492b2