[PATCH spice-server 2/9] reds: Remove leak of agent_dev

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This object was not freed.

Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx>
---
 server/reds.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/server/reds.c b/server/reds.c
index 4e652253..40c82ccc 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -3754,6 +3754,7 @@ SPICE_GNUC_VISIBLE void spice_server_destroy(SpiceServer *reds)
        reds_core_watch_remove(reds, reds->secure_listen_watch);
        close(reds->secure_listen_socket);
     }
+    g_clear_object(&reds->agent_dev);
     spice_buffer_free(&reds->client_monitors_config);
     red_record_unref(reds->record);
     reds_cleanup(reds);
@@ -4535,8 +4536,14 @@ red_char_device_vdi_port_finalize(GObject *object)
 {
     RedCharDeviceVDIPort *dev = RED_CHAR_DEVICE_VDIPORT(object);
 
+    /* make sure we have no other references to RedVDIReadBuf buffers */
+    red_char_device_reset(RED_CHAR_DEVICE(dev));
+    if (dev->priv->current_read_buf) {
+        red_pipe_item_unref(&dev->priv->current_read_buf->base);
+        dev->priv->current_read_buf = NULL;
+    }
+    g_list_free_full(dev->priv->read_bufs, g_free);
     g_free(dev->priv->mig_data);
-   /* FIXME: need to free the RedVDIReadBuf allocated previously */
 
     G_OBJECT_CLASS(red_char_device_vdi_port_parent_class)->finalize(object);
 }
-- 
2.14.3

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]