aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/obsolete/packagekit/files/remove_search_memory_leak.patch
blob: bcc27adba7051747dd9692c046a6dc4f45ed6967 (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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
diff --git a/backends/opkg/pk-backend-opkg.c b/backends/opkg/pk-backend-opkg.c
index 0b9867e..a7b5244 100644
--- a/backends/opkg/pk-backend-opkg.c
+++ b/backends/opkg/pk-backend-opkg.c
@@ -307,21 +307,23 @@ pk_opkg_package_list_cb (opkg_t *opkg, opkg_package_t *pkg, void *data)
 
 	/* check filters */
 
-	if ((filters & PK_FILTER_ENUM_DEVELOPMENT) && !opkg_is_devel_pkg (pkg))
-		return;
+	if ((filters & PK_FILTER_ENUM_DEVELOPMENT) && !opkg_is_devel_pkg (pkg)) 
+		goto end_handle;
 	if ((filters & PK_FILTER_ENUM_NOT_DEVELOPMENT) && opkg_is_devel_pkg (pkg))
-		return;
+		goto end_handle;
 	if ((filters & PK_FILTER_ENUM_GUI) && !opkg_is_gui_pkg (pkg))
-		return;
+		goto end_handle;
 	if ((filters & PK_FILTER_ENUM_NOT_GUI) && opkg_is_gui_pkg (pkg))
-		return;
+		goto end_handle;
 	if ((filters & PK_FILTER_ENUM_INSTALLED) && (!pkg->installed))
-		return;
+		goto end_handle;
 	if ((filters & PK_FILTER_ENUM_NOT_INSTALLED) && (pkg->installed))
-		return;
+		goto end_handle;
 
 	pk_backend_package (params->backend, status, uid, pkg->description);
 
+end_handle:
+	g_free(uid);
 }
 
 static gboolean
@@ -616,6 +618,7 @@ pk_opkg_list_upgradable_cb (opkg_t *opkg, opkg_package_t *pkg, void *data)
 		pkg->name, pkg->version, pkg->architecture);
 
 	pk_backend_package (backend, status, uid, pkg->description);
+	g_free(uid);
 }
 
 static gboolean
@@ -696,6 +699,7 @@ backend_get_details_thread (PkBackend *backend)
 
 	pk_backend_details (backend, newid, NULL, group, pkg->description, pkg->url, pkg->size);
 	g_free (newid);
+	opkg_package_free(pkg);
 	pk_backend_finished (backend);
 	return TRUE;
 }