This commit is contained in:
Panu Matilainen 2020-12-10 13:46:29 +02:00
parent dd58cd6118
commit 1200e8af92
5 changed files with 7 additions and 76 deletions

1
.gitignore vendored
View File

@ -42,3 +42,4 @@
/rpm-4.16.0-beta3.tar.bz2
/rpm-4.16.0-rc1.tar.bz2
/rpm-4.16.0.tar.bz2
/rpm-4.16.1.tar.bz2

View File

@ -1,29 +0,0 @@
From fd054a40b2ba005571455d749de0423975e77651 Mon Sep 17 00:00:00 2001
Message-Id: <fd054a40b2ba005571455d749de0423975e77651.1606726599.git.pmatilai@redhat.com>
From: Panu Matilainen <pmatilai@redhat.com>
Date: Wed, 18 Nov 2020 13:56:14 +0200
Subject: [PATCH 1/2] Stop on first failure when trying to open a database
(RhBug:1898301)
If an index open fails there's no point trying to go on, things are
not going to work and at least BDB will segfault in some cases...
---
lib/rpmdb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/rpmdb.c b/lib/rpmdb.c
index 874f07911..41da9da71 100644
--- a/lib/rpmdb.c
+++ b/lib/rpmdb.c
@@ -355,7 +355,7 @@ static int doOpen(rpmdb db, int justPkgs)
{
int rc = pkgdbOpen(db, db->db_flags, NULL);
if (!justPkgs) {
- for (int dbix = 0; dbix < db->db_ndbi; dbix++) {
+ for (int dbix = 0; rc == 0 && dbix < db->db_ndbi; dbix++) {
rc += indexOpen(db, db->db_tags[dbix], db->db_flags, NULL);
}
}
--
2.28.0

View File

@ -1,42 +0,0 @@
From 3cb955b77f07c70ba01d765aa6377908847608f5 Mon Sep 17 00:00:00 2001
Message-Id: <3cb955b77f07c70ba01d765aa6377908847608f5.1606726599.git.pmatilai@redhat.com>
In-Reply-To: <fd054a40b2ba005571455d749de0423975e77651.1606726599.git.pmatilai@redhat.com>
References: <fd054a40b2ba005571455d749de0423975e77651.1606726599.git.pmatilai@redhat.com>
From: Panu Matilainen <pmatilai@redhat.com>
Date: Mon, 23 Nov 2020 13:46:14 +0200
Subject: [PATCH 2/2] Only attempt loading the keyring once the rpmdb is open
When we do lazy rpmdb open in rpmtsInitIterator(), we also do a lazy
keyring open. Except that since the keyring typically lives in the rpmdb,
we PROBABLY should try open the database first. One of those "WTF I've
been smoking" moments, lol.
Prevents an ugly if mostly harmless double error anything we can't open
the database for one reason or another.
---
lib/rpmts.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/rpmts.c b/lib/rpmts.c
index 9fa9cb0e2..8c8ae420a 100644
--- a/lib/rpmts.c
+++ b/lib/rpmts.c
@@ -177,12 +177,12 @@ rpmdbMatchIterator rpmtsInitIterator(const rpmts ts, rpmDbiTagVal rpmtag,
if (ts == NULL)
return NULL;
- if (ts && ts->keyring == NULL)
- loadKeyring(ts);
-
if (ts->rdb == NULL && rpmtsOpenDB(ts, ts->dbmode))
return NULL;
+ if (ts->keyring == NULL)
+ loadKeyring(ts);
+
/* Parse out "N(EVR)" tokens from a label key if present */
if (rpmtag == RPMDBI_LABEL && keyp != NULL && strchr(keyp, '(')) {
const char *se, *s = keyp;
--
2.28.0

View File

@ -30,9 +30,9 @@
%define rpmhome /usr/lib/rpm
%global rpmver 4.16.0
%global rpmver 4.16.1
#global snapver rc1
%global rel 5
%global rel 1
%global srcver %{rpmver}%{?snapver:-%{snapver}}
%global srcdir %{?snapver:testing}%{!?snapver:rpm-%(echo %{rpmver} | cut -d'.' -f1-2).x}
@ -67,8 +67,6 @@ Patch6: 0001-find-debuginfo.sh-decompress-DWARF-compressed-ELF-se.patch
Patch7: 0001-Issue-deprecation-warning-when-creating-BDB-database.patch
# Patches already upstream:
Patch100: 0001-Stop-on-first-failure-when-trying-to-open-a-database.patch
Patch101: 0002-Only-attempt-loading-the-keyring-once-the-rpmdb-is-o.patch
# These are not yet upstream
Patch906: rpm-4.7.1-geode-i686.patch
@ -562,6 +560,9 @@ fi
%doc doc/librpm/html/*
%changelog
* Thu Dec 10 2020 Panu Matilainen <pmatilai@redhat.com> - 4.16.1-1
- Rebase to rpm 4.16.1 (http://rpm.org/wiki/Releases/4.16.1)
* Mon Nov 30 2020 Panu Matilainen <pmatilai@redhat.com> - 4.16.0-5
- Only disable test-suite where it's actually broken

View File

@ -1 +1 @@
SHA512 (rpm-4.16.0.tar.bz2) = 177119c3ac3d48980db55bb4ba0fdbb2a911968e5efc690bfa8cc343f850fc90531cc0dee6dd8e45d2b14f0d951ced35bd8893d24011b7f270745d281ddf4e3d
SHA512 (rpm-4.16.1.tar.bz2) = cbce8381e7a0bdaf2c7529d0ac91fda15e663db7a76b02652d53327ebcd7d5b6b6154d5e88feeda87f71727a036e7a2afcd57c7dcddef610e32957b9e430d367