Hello community, here is the log from the commit of package PackageKit for openSUSE:Factory checked in at 2017-10-13 14:09:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/PackageKit (Old) and /work/SRC/openSUSE:Factory/.PackageKit.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "PackageKit" Fri Oct 13 14:09:02 2017 rev:164 rq:532850 version:1.1.7 Changes: -------- --- /work/SRC/openSUSE:Factory/PackageKit/PackageKit.changes 2017-09-25 13:54:35.151613451 +0200 +++ /work/SRC/openSUSE:Factory/.PackageKit.new/PackageKit.changes 2017-10-13 14:09:04.518729354 +0200 @@ -1,0 +2,6 @@ +Mon Oct 9 02:20:58 UTC 2017 - sck...@suse.com + +- Add PK-zypp-return-error-invalid-package-ids.patch: Return error + if invalid package IDs are detected in zypp backend (bsc#981011). + +------------------------------------------------------------------- New: ---- PK-zypp-return-error-invalid-package-ids.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ PackageKit.spec ++++++ --- /var/tmp/diff_new_pack.NIBxMM/_old 2017-10-13 14:09:05.314694353 +0200 +++ /var/tmp/diff_new_pack.NIBxMM/_new 2017-10-13 14:09:05.314694353 +0200 @@ -34,6 +34,8 @@ Patch0: PackageKit-avoid-endless-loop-on-autoupdate.patch # PATCH-FIX-OPENSUSE PackageKit-zypp-backend-improve-refresh-cache.patch bsc#899755 sck...@suse.com -- Improve refresh-cache function in zypp backend. Patch1: PackageKit-zypp-backend-improve-refresh-cache.patch +# PATCH-FIX-UPSTREAM PK-zypp-return-error-invalid-package-ids.patch bsc#981011 sck...@suse.com -- zypp: Return error if invalid package IDs are detected +Patch2: PK-zypp-return-error-invalid-package-ids.patch BuildRequires: NetworkManager-devel # Needed in order to be able to bootstrap (patch2) BuildRequires: autoconf-archive @@ -223,6 +225,7 @@ %setup -q %patch0 -p1 %patch1 -p1 +%patch2 -p1 %if !0%{?is_opensuse} translation-update-upstream %endif ++++++ PK-zypp-return-error-invalid-package-ids.patch ++++++ >From 6c97a7f05953e91b156fdb783e24357ed03b20c7 Mon Sep 17 00:00:00 2001 From: Jonathan Kang <jonathan121...@gmail.com> Date: Mon, 7 Aug 2017 14:48:37 +0800 Subject: [PATCH] zypp: Return error if invalid package IDs are detected --- backends/zypp/pk-backend-zypp.cpp | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) Index: PackageKit-1.1.7/backends/zypp/pk-backend-zypp.cpp =================================================================== --- PackageKit-1.1.7.orig/backends/zypp/pk-backend-zypp.cpp +++ PackageKit-1.1.7/backends/zypp/pk-backend-zypp.cpp @@ -1805,7 +1805,7 @@ pk_backend_destroy (PkBackend *backend) static bool zypp_is_no_solvable (const sat::Solvable &solv) { - return solv.id() == sat::detail::noSolvableId; + return solv == sat::Solvable::noSolvable; } /** @@ -2111,6 +2111,13 @@ backend_get_details_thread (PkBackendJob sat::Solvable solv = zypp_get_package_by_id( package_ids[i] ); + if (zypp_is_no_solvable(solv)) { + // Previously stored package_id no longer matches any solvable. + zypp_backend_finished_error (job, PK_ERROR_ENUM_PACKAGE_NOT_FOUND, + "couldn't find package"); + return; + } + ResObject::constPtr obj = make<ResObject>( solv ); if (obj == NULL) { zypp_backend_finished_error (job, PK_ERROR_ENUM_PACKAGE_NOT_FOUND, @@ -2584,6 +2591,13 @@ backend_install_packages_thread (PkBacke for (guint i = 0; package_ids[i]; i++) { MIL << package_ids[i] << endl; sat::Solvable solvable = zypp_get_package_by_id (package_ids[i]); + + if (zypp_is_no_solvable(solvable)) { + // Previously stored package_id no longer matches any solvable. + zypp_backend_finished_error (job, PK_ERROR_ENUM_PACKAGE_NOT_FOUND, + "couldn't find package"); + return; + } to_install++; PoolItem item(solvable); @@ -3222,6 +3236,14 @@ backend_update_packages_thread (PkBacken for (guint i = 0; package_ids[i]; i++) { sat::Solvable solvable = zypp_get_package_by_id (package_ids[i]); + + if (zypp_is_no_solvable(solvable)) { + // Previously stored package_id no longer matches any solvable. + zypp_backend_finished_error (job, PK_ERROR_ENUM_PACKAGE_NOT_FOUND, + "couldn't find package"); + return; + } + ui::Selectable::Ptr sel( ui::Selectable::get( solvable )); PoolItem item(solvable);