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;
}
|