[libgovirt] proxy: Fix leak of cert data in ovirt_proxy_fetch_certificate{, async}
- From: Christophe Fergeau <teuf src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgovirt] proxy: Fix leak of cert data in ovirt_proxy_fetch_certificate{, async}
- Date: Thu, 6 Aug 2015 16:31:10 +0000 (UTC)
commit 2cff0a9a3f1ce35e6af792224ed8c8a34ecbe473
Author: Christophe Fergeau <cfergeau redhat com>
Date: Mon Jul 27 12:04:45 2015 +0200
proxy: Fix leak of cert data in ovirt_proxy_fetch_certificate{,async}
govirt/ovirt-proxy.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/govirt/ovirt-proxy.c b/govirt/ovirt-proxy.c
index fdd3955..350a1a2 100644
--- a/govirt/ovirt-proxy.c
+++ b/govirt/ovirt-proxy.c
@@ -607,8 +607,8 @@ static void set_display_ca_cert_from_data(OvirtProxy *proxy,
if (proxy->priv->display_ca != NULL)
g_byte_array_unref(proxy->priv->display_ca);
- g_byte_array_append(proxy->priv->display_ca,
- (guint8 *)ca_cert_data, ca_cert_len);
+ proxy->priv->display_ca = g_byte_array_new_take((guint8 *)ca_cert_data,
+ ca_cert_len);
/* While the fetched CA certificate has historically been used both as the CA
* certificate used during REST API communication and as the one to use for
@@ -648,6 +648,7 @@ gboolean ovirt_proxy_fetch_ca_certificate(OvirtProxy *proxy, GError **error)
goto error;
set_ca_cert_from_data(proxy, cert_data, cert_length);
+ /* takes ownership of cert_data */
set_display_ca_cert_from_data(proxy, cert_data, cert_length);
error:
@@ -679,6 +680,7 @@ static void ca_file_loaded_cb(GObject *source_object,
proxy = g_async_result_get_source_object(G_ASYNC_RESULT(fetch_result));
set_ca_cert_from_data(OVIRT_PROXY(proxy), cert_data, cert_length);
+ /* takes ownership of cert_data */
set_display_ca_cert_from_data(OVIRT_PROXY(proxy),
cert_data, cert_length);
g_object_unref(proxy);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]