summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPanu Matilainen <pmatilai@redhat.com>2011-11-09 09:19:48 +0200
committerPanu Matilainen <pmatilai@redhat.com>2011-11-09 09:23:26 +0200
commit9e9761caa885dfe5f588b9322cce9eaf03168510 (patch)
treee4d7131088f9398e5e4aed61192e2f36b628730e
parent917a5c4f6b78174e3c7387fc7fb56e2900f2543e (diff)
downloadrpm-9e9761caa885dfe5f588b9322cce9eaf03168510.tar.gz
rpm-9e9761caa885dfe5f588b9322cce9eaf03168510.tar.bz2
rpm-9e9761caa885dfe5f588b9322cce9eaf03168510.zip
Don't make assumptions about how pgpDig allocates things
- Only call pgpDigGetParams() on the public key once we've at least tried to fetch it via rpmKeyringLookup(). This way we dont assume things about how pgpDig internal allocation is done - currently it does return what's essentially a static pointer into pgpDig, but this is not a reasonable assumption for an opaque type. No functional changes.
-rw-r--r--lib/signature.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/signature.c b/lib/signature.c
index eec5ff7a3..c5a06de16 100644
--- a/lib/signature.c
+++ b/lib/signature.c
@@ -476,12 +476,12 @@ verifySignature(rpmKeyring keyring, pgpDig dig, DIGEST_CTX hashctx, int isHdr,
char *sigid = NULL;
*msg = NULL;
pgpDigParams sig = pgpDigGetParams(dig, PGPTAG_SIGNATURE);
- pgpDigParams pub = pgpDigGetParams(dig, PGPTAG_PUBLIC_KEY);
/* Call verify even if we dont have a key for a basic sanity check */
if (sig) {
(void) rpmKeyringLookup(keyring, dig);
- res = pgpVerifySignature(pub, sig, hashctx);
+ res = pgpVerifySignature(pgpDigGetParams(dig, PGPTAG_PUBLIC_KEY),
+ sig, hashctx);
sigid = pgpIdentItem(sig);
rasprintf(msg, "%s%s: %s\n", isHdr ? _("Header ") : "", sigid,