aboutsummaryrefslogtreecommitdiffstats
path: root/main/upower/lib-Fix-memory-leak-in-up_client_get_devices.patch
blob: 3418b0416820824ad9fb3b175159760b786db62f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
From fe37183fba649b999af3f66b9e0b0d70a054426c Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Wed, 17 Jun 2015 10:52:12 +0200
Subject: lib: Fix memory leak in up_client_get_devices()

When up_client_get_devices() fails to contact the D-Bus daemon, don't
leak the newly created array.

diff --git a/libupower-glib/up-client.c b/libupower-glib/up-client.c
index 48d99a0..4780aa5 100644
--- a/libupower-glib/up-client.c
+++ b/libupower-glib/up-client.c
@@ -95,8 +95,6 @@ up_client_get_devices (UpClient *client)
 
 	g_return_val_if_fail (UP_IS_CLIENT (client), NULL);
 
-	array = g_ptr_array_new ();
-
 	if (up_client_glue_call_enumerate_devices_sync (client->priv->proxy,
 							&devices,
 							NULL,
@@ -106,6 +104,8 @@ up_client_get_devices (UpClient *client)
 		return NULL;
 	}
 
+	array = g_ptr_array_new ();
+
 	for (i = 0; devices[i] != NULL; i++) {
 		UpDevice *device;
 		const char *object_path = devices[i];
-- 
cgit v0.10.2