--- rpm-5.3.12/rpmio/rpmhkp.c 2010-10-12 01:56:41.000000000 +0400 +++ rpm-5.3.12/rpmio/rpmhkp.c 2012-03-29 12:56:02.322614316 +0400 @@ -878,6 +878,14 @@ rpmRC rpmhkpValidate(rpmhkp hkp, const char * keyname) { + /*Reset all the temporary variables*/ + hkp->pubx = -1; + hkp->uidx = -1; + hkp->subx = -1; + hkp->sigx = -1; + hkp->tvalid = 0; + hkp->uvalidx = -1; + pgpPkt pp = alloca(sizeof(*pp)); size_t pleft; rpmRC rc = RPMRC_NOKEY; /* assume failure */ @@ -1055,7 +1063,7 @@ } exit: - if ((hkp->uidx >= 0 && hkp->uidx < hkp->npkts) && hkp->tvalid > 0) { + if ((hkp->uvalidx >= 0 && hkp->uvalidx < hkp->npkts) && hkp->tvalid > 0) { char user[256+1]; size_t nuser; pgpPktUid * u;