diff options
author | Panu Matilainen <pmatilai@redhat.com> | 2012-09-17 10:48:05 +0300 |
---|---|---|
committer | Panu Matilainen <pmatilai@redhat.com> | 2012-10-03 11:00:52 +0300 |
commit | b789db416dc075a358699925a0b48302ec47ba7d (patch) | |
tree | 442bc76549fb2ed84e784d72fbb2ab4095c709d5 | |
parent | a949ae9353674f25f4ad875d7d9e69a9759b4897 (diff) | |
download | rpm-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.c | 8 |
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); |