summaryrefslogtreecommitdiff
path: root/recipes/obsolete/packagekit/files/remove_search_memory_leak.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/obsolete/packagekit/files/remove_search_memory_leak.patch')
-rw-r--r--recipes/obsolete/packagekit/files/remove_search_memory_leak.patch51
1 files changed, 51 insertions, 0 deletions
diff --git a/recipes/obsolete/packagekit/files/remove_search_memory_leak.patch b/recipes/obsolete/packagekit/files/remove_search_memory_leak.patch
new file mode 100644
index 0000000000..bcc27adba7
--- /dev/null
+++ b/recipes/obsolete/packagekit/files/remove_search_memory_leak.patch
@@ -0,0 +1,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;
+ }