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