7bcd4c2489
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.
30 lines
988 B
Diff
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
|
|
|