summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPanu Matilainen <pmatilai@redhat.com>2012-09-17 10:48:05 +0300
committerPanu Matilainen <pmatilai@redhat.com>2012-10-03 11:00:52 +0300
commitb789db416dc075a358699925a0b48302ec47ba7d (patch)
tree442bc76549fb2ed84e784d72fbb2ab4095c709d5
parenta949ae9353674f25f4ad875d7d9e69a9759b4897 (diff)
downloadrpm-b789db416dc075a358699925a0b48302ec47ba7d.tar.gz
Permit key imports even if signature checking is disabled (RhBug:856225)
- Since commit 290fcbbe6b3ca2fb1d5e4a7269a32a94f8a1563a, key imports on transaction sets where signature checking is disabled would fail due to keyring not getting loaded at all. A regression of sorts, in other words. As a minimal fix, temporarily enable sigcheck vsflags during keyring loading. (cherry picked from commit 9209e6cd78a1e6814f3038734cdd300b97ddcf1b)
-rw-r--r--lib/rpmts.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/rpmts.c b/lib/rpmts.c
index 02713d3ba..7a60c991b 100644
--- a/lib/rpmts.c
+++ b/lib/rpmts.c
@@ -458,9 +458,15 @@ rpmRC rpmtsImportPubkey(const rpmts ts, const unsigned char * pkt, size_t pktlen
Header h = NULL;
rpmRC rc = RPMRC_FAIL; /* assume failure */
rpmPubkey pubkey = NULL;
- rpmKeyring keyring = rpmtsGetKeyring(ts, 1);
+ rpmVSFlags oflags = rpmtsVSFlags(ts);
+ rpmKeyring keyring;
int krc;
+ /* XXX keyring wont load if sigcheck disabled, force it temporarily */
+ rpmtsSetVSFlags(ts, (oflags & ~_RPMVSF_NOSIGNATURES));
+ keyring = rpmtsGetKeyring(ts, 1);
+ rpmtsSetVSFlags(ts, oflags);
+
if ((pubkey = rpmPubkeyNew(pkt, pktlen)) == NULL)
goto exit;
krc = rpmKeyringAddKey(keyring, pubkey);