diff --git a/backport-Don-t-segfault-on-missing-priority-tag.patch b/backport-Don-t-segfault-on-missing-priority-tag.patch new file mode 100644 index 0000000..d1e457d --- /dev/null +++ b/backport-Don-t-segfault-on-missing-priority-tag.patch @@ -0,0 +1,40 @@ +From 920c1f38b1dfff49bec68515882ade4c03c90512 Mon Sep 17 00:00:00 2001 +From: Florian Festi +Date: Fri, 20 Aug 2021 15:14:16 +0200 +Subject: [PATCH] Don't segfault on missing priority tag + +Resolves: #1636 +Related: #1638 +(cherry picked from commit fd57fc716231c8296d340fdb4c0f6eac176f7f7c) +--- + lib/rpmtriggers.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/lib/rpmtriggers.c b/lib/rpmtriggers.c +index 53646a5..17257b4 100644 +--- a/lib/rpmtriggers.c ++++ b/lib/rpmtriggers.c +@@ -517,7 +517,8 @@ rpmRC runFileTriggers(rpmts ts, rpmte te, rpmsenseFlags sense, + if (matchFunc(ts, te, pfx, sense)) { + for (i = 0; i < rpmdbIndexIteratorNumPkgs(ii); i++) { + struct rpmtd_s priorities; +- unsigned int priority; ++ unsigned int priority = 0; ++ unsigned int *priority_ptr; + unsigned int offset = rpmdbIndexIteratorPkgOffset(ii, i); + unsigned int tix = rpmdbIndexIteratorTagNum(ii, i); + +@@ -535,7 +536,9 @@ rpmRC runFileTriggers(rpmts ts, rpmte te, rpmsenseFlags sense, + trigH = rpmdbGetHeaderAt(rpmtsGetRdb(ts), offset); + headerGet(trigH, priorityTag, &priorities, HEADERGET_MINMEM); + rpmtdSetIndex(&priorities, tix); +- priority = *rpmtdGetUint32(&priorities); ++ priority_ptr = rpmtdGetUint32(&priorities); ++ if (priority_ptr) ++ priority = *priority_ptr; + headerFree(trigH); + + /* Store file trigger in array */ +-- +2.33.0 + diff --git a/rpm.spec b/rpm.spec index 0eaca3f..0a24dc3 100644 --- a/rpm.spec +++ b/rpm.spec @@ -1,6 +1,6 @@ Name: rpm Version: 4.17.0 -Release: 37 +Release: 38 Summary: RPM Package Manager License: GPLv2+ URL: http://www.rpm.org/ @@ -127,6 +127,7 @@ Patch6088: backport-An-enumeration-is-not-a-bitfield-use-an-integer-inst.patch Patch6089: backport-Fix-an-enum-int-type-mismatch-in-rpmfiArchiveReadToF.patch Patch6090: backport-Fix-an-enum-int-type-mismatch-in-transaction-verify-.patch Patch6091: backport-Fix-enum-type-mismatch-in-rpmTagGetValue.patch +Patch6092: backport-Don-t-segfault-on-missing-priority-tag.patch BuildRequires: gcc autoconf automake libtool make gawk popt-devel openssl-devel readline-devel BuildRequires: zlib-devel zstd-devel >= 1.3.8 xz-devel bzip2-devel libarchive-devel ima-evm-utils-devel @@ -417,6 +418,9 @@ make check || (cat tests/rpmtests.log; exit 0) %{_mandir}/man1/gendiff.1* %changelog +* Tue Jun 04 2024 Zhao Mengmeng - 4.17.0-38 +- Don't segfault on missing priority tag + * Tue May 7 2024 gengqihu - 4.17.0-37 - Backport some patches from upstream