rpm/0001-Stop-on-first-failure-when-trying-to-open-a-database.patch
Panu Matilainen 7bcd4c2489 Database opening related fixes
BDB will segfault on multiple failed attempts of certain kind, something
unexpected fails when selinux says no. Stop on first failure instead.
On a related note, fix double rpmdb open failure from lazy keyring open
recursing back to the same lazy open.
2020-11-30 11:02:41 +02:00

30 lines
988 B
Diff

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