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