RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson
Root: /v/rpm/cvs Email: jbj@rpm5.org
Module: rpm Date: 14-Oct-2007 03:24:06
Branch: HEAD Handle: 2007101402240500
Modified files:
rpm CHANGES
rpm/lib rpmchecksig.c
Log:
- rpmsignature.c: use headerGetExtension everywhere.
Summary:
Revision Changes Path
1.1693 +1 -0 rpm/CHANGES
1.154 +40 -23 rpm/lib/rpmchecksig.c
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.1692 -r1.1693 CHANGES
--- rpm/CHANGES 14 Oct 2007 00:58:14 -0000 1.1692
+++ rpm/CHANGES 14 Oct 2007 01:24:05 -0000 1.1693
@@ -1,4 +1,5 @@
4.5 -> 5.0:
+ - jbj: rpmsignature.c: use headerGetExtension everywhere.
- jbj: rpmrollback.c: use headerGetExtension everywhere.
- jbj: use (*hge), not headerGetExtension, everywhere.
- jbj: psm.c: use headerGetExtension everywhere.
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpmchecksig.c
============================================================================
$ cvs diff -u -r1.153 -r1.154 rpmchecksig.c
--- rpm/lib/rpmchecksig.c 13 Oct 2007 08:42:08 -0000 1.153
+++ rpm/lib/rpmchecksig.c 14 Oct 2007 01:24:05 -0000 1.154
@@ -133,31 +133,37 @@
/**
* Retrieve signer fingerprint from an OpenPGP signature tag.
- * @param sig signature header
+ * @param sigh signature header
* @param sigtag signature tag
* @retval signid signer fingerprint
* @return 0 on success
*/
-static int getSignid(Header sig, int sigtag, unsigned char * signid)
+static int getSignid(Header sigh, int sigtag, unsigned char * signid)
/*@globals fileSystem, internalState @*/
/*@modifies *signid, fileSystem, internalState @*/
{
- void * pkt = NULL;
- int_32 pkttyp = 0;
- int_32 pktlen = 0;
+ HGE_t hge = (HGE_t)headerGetExtension;
+ int_32 he_t = 0;
+ hRET_t he_p = { .ptr = NULL };
+ int_32 he_c = 0;
+ HE_s he_s = { .tag = 0, .t = &he_t, .p = &he_p, .c = &he_c, .freeData = 0 };
+ HE_t he = &he_s;
int rc = 1;
+ int xx;
- if (headerGetEntry(sig, sigtag, &pkttyp, &pkt, &pktlen) && pkt != NULL) {
+ he->tag = sigtag;
+ xx = hge(sigh, he->tag, he->t, he->p, he->c);
+ if (xx && he_p.ptr != NULL) {
pgpDig dig = pgpNewDig(0);
- if (!pgpPrtPkts(pkt, pktlen, dig, 0)) {
+ if (!pgpPrtPkts(he_p.ptr, he_c, dig, 0)) {
memcpy(signid, dig->signature.signid, sizeof(dig->signature.signid));
rc = 0;
}
+ he_p.ptr = _free(he_p.ptr);
dig = pgpFreeDig(dig);
}
- pkt = headerFreeData(pkt, pkttyp);
return rc;
}
@@ -175,6 +181,12 @@
/*@modifies ts, rpmGlobalMacroContext,
fileSystem, internalState @*/
{
+ HGE_t hge = (HGE_t)headerGetExtension;
+ int_32 he_t = 0;
+ hRET_t he_p = { .ptr = NULL };
+ int_32 he_c = 0;
+ HE_s he_s = { .tag = 0, .t = &he_t, .p = &he_p, .c = &he_c, .freeData = 0 };
+ HE_t he = &he_s;
rpmgi gi = NULL;
FD_t fd = NULL;
FD_t ofd = NULL;
@@ -184,8 +196,6 @@
char tmprpm[1024+1];
Header sigh = NULL;
const char * msg = NULL;
- void * uh = NULL;
- int_32 uht, uhc;
int res = EXIT_FAILURE;
int deleting = (qva->qva_mode == RPMSIGN_DEL_SIGNATURE);
rpmRC rc;
@@ -194,7 +204,7 @@
tmprpm[0] = '\0';
if (argv)
-{ /* start-of-arg-iteration */
+ { /* start-of-arg-iteration */
int tag = (qva->qva_source == RPMQV_FTSWALK)
? RPMDBI_FTSWALK : RPMDBI_ARGLIST;
rpmgiFlags _giFlags = RPMGI_NONE;
@@ -260,7 +270,9 @@
/* ASSERT: fd == NULL && ofd == NULL */
/* Dump the immutable region (if present). */
- if (headerGetEntry(sigh, RPMTAG_HEADERSIGNATURES, &uht, &uh, &uhc)) {
+ he->tag = RPMTAG_HEADERSIGNATURES;
+ xx = hge(sigh, he->tag, he->t, he->p, he->c);
+ if (xx) {
HeaderIterator hi;
int_32 htag, type, count;
hPTR_t ptr;
@@ -269,11 +281,11 @@
nh = headerNew();
if (nh == NULL) {
- uh = headerFreeData(uh, uht);
+ he_p.ptr = _free(he_p.ptr);
goto exit;
}
- oh = headerCopyLoad(uh);
+ oh = headerCopyLoad(he_p.ptr);
for (hi = headerInitIterator(oh);
headerNextIterator(hi, &htag, &type, &ptr, &count);
ptr = headerFreeData(ptr, type))
@@ -423,7 +435,7 @@
sigtarget = _free(sigtarget);
}
-} /* end-of-arg-iteration */
+ } /* end-of-arg-iteration */
res = 0;
@@ -662,9 +674,16 @@
/*@globals fileSystem, internalState @*/
/*@modifies fd, *dig, fileSystem, internalState @*/
{
+ HGE_t hge = (HGE_t)headerGetExtension;
+ int_32 he_t = 0;
+ hRET_t he_p = { .ptr = NULL };
+ int_32 he_c = 0;
+ HE_s he_s = { .tag = 0, .t = &he_t, .p = &he_p, .c = &he_c, .freeData = 0 };
+ HE_t he = &he_s;
unsigned char buf[4*BUFSIZ];
ssize_t count;
int rc = 1;
+ int xx;
int i;
dig->nbytes = 0;
@@ -681,12 +700,10 @@
if (headerIsEntry(h, RPMTAG_HEADERIMMUTABLE)) {
unsigned char * hmagic = NULL;
size_t nmagic = 0;
- void * uh;
- int_32 uht, uhc;
- if (!headerGetEntry(h, RPMTAG_HEADERIMMUTABLE, &uht, &uh, &uhc)
- || uh == NULL)
- {
+ he->tag = RPMTAG_HEADERIMMUTABLE;
+ xx = hge(h, he->tag, he->t, he->p, he->c);
+ if (!xx || he_p.ptr == NULL) {
h = headerFree(h);
rpmlog(RPMLOG_ERR, _("%s: headerGetEntry failed\n"), fn);
goto exit;
@@ -695,12 +712,12 @@
dig->hdrsha1ctx = rpmDigestInit(PGPHASHALGO_SHA1, RPMDIGEST_NONE);
if (hmagic && nmagic > 0)
(void) rpmDigestUpdate(dig->hdrsha1ctx, hmagic, nmagic);
- (void) rpmDigestUpdate(dig->hdrsha1ctx, uh, uhc);
+ (void) rpmDigestUpdate(dig->hdrsha1ctx, he_p.ptr, he_c);
dig->hdrmd5ctx = rpmDigestInit(dig->signature.hash_algo, RPMDIGEST_NONE);
if (hmagic && nmagic > 0)
(void) rpmDigestUpdate(dig->hdrmd5ctx, hmagic, nmagic);
- (void) rpmDigestUpdate(dig->hdrmd5ctx, uh, uhc);
- uh = headerFreeData(uh, uht);
+ (void) rpmDigestUpdate(dig->hdrmd5ctx, he_p.ptr, he_c);
+ he_p.ptr = _free(he_p.ptr);
}
h = headerFree(h);
}
@@ .
Received on Sun Oct 14 03:24:06 2007