RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 20-Nov-2007 18:37:04 Branch: HEAD Handle: 2007112017370301 Modified files: rpm CHANGES rpm/lib rpmchecksig.c rpm/perl rpmxs.c rpm/rpmdb hdrfmt.c pkgio.c rpmwf.c rpmwf.h signature.c rpm/rpmio librpmio.vers rpmio_internal.h rpmpgp.c rpmpgp.h thkp.c tkey.c Log: - add refcounts to rpmwf and pgpDig, they're gonna be snarly. Summary: Revision Changes Path 1.1852 +1 -0 rpm/CHANGES 1.184 +5 -5 rpm/lib/rpmchecksig.c 1.5 +2 -1 rpm/perl/rpmxs.c 1.35 +2 -2 rpm/rpmdb/hdrfmt.c 1.43 +2 -2 rpm/rpmdb/pkgio.c 1.11 +34 -3 rpm/rpmdb/rpmwf.c 1.5 +39 -0 rpm/rpmdb/rpmwf.h 1.30 +2 -2 rpm/rpmdb/signature.c 2.16 +5 -3 rpm/rpmio/librpmio.vers 2.87 +2 -0 rpm/rpmio/rpmio_internal.h 2.71 +51 -20 rpm/rpmio/rpmpgp.c 2.55 +46 -9 rpm/rpmio/rpmpgp.h 2.13 +3 -3 rpm/rpmio/thkp.c 2.19 +2 -2 rpm/rpmio/tkey.c ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/CHANGES ============================================================================ $ cvs diff -u -r1.1851 -r1.1852 CHANGES --- rpm/CHANGES 19 Nov 2007 21:50:17 -0000 1.1851 +++ rpm/CHANGES 20 Nov 2007 17:37:03 -0000 1.1852 @@ -1,4 +1,5 @@ 5.0a2 -> 5.0a3: + - jbj: add refcounts to rpmwf and pgpDig, they're gonna be snarly. - jbj: eliminate the headerCheck recursion check. not seen w rpm code paths. - jbj: pass dig, not ts, through pkgio.c header routines. - jbj: eliminate 2 of 3 remaining uses of headerWrite. @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmchecksig.c ============================================================================ $ cvs diff -u -r1.183 -r1.184 rpmchecksig.c --- rpm/lib/rpmchecksig.c 18 Nov 2007 22:33:21 -0000 1.183 +++ rpm/lib/rpmchecksig.c 20 Nov 2007 17:37:03 -0000 1.184 @@ -157,7 +157,7 @@ he->tag = sigtag; xx = hge(sigh, he, 0); if (xx && he->p.ptr != NULL) { - pgpDig dig = pgpNewDig(0); + pgpDig dig = pgpDigNew(0); if (!pgpPrtPkts(he->p.ptr, he->c, dig, 0)) { memcpy(signid, dig->signature.signid, sizeof(dig->signature.signid)); @@ -165,7 +165,7 @@ } he->p.ptr = _free(he->p.ptr); - dig = pgpFreeDig(dig); + dig = pgpDigFree(dig); } return rc; } @@ -510,7 +510,7 @@ goto exit; /[EMAIL PROTECTED]@*/ - dig = pgpNewDig(0); + dig = pgpDigNew(0); /* Build header elements. */ (void) pgpPrtPkts(pkt, pktlen, dig, 0); @@ -693,7 +693,7 @@ exit: /* Clean up. */ h = headerFree(h); - dig = pgpFreeDig(dig); + dig = pgpDigFree(dig); n = _free(n); u = _free(u); v = _free(v); @@ -1002,7 +1002,7 @@ assert(she->p.ptr != NULL); /* Clean up parameters from previous she->tag. */ - pgpCleanDig(dig); + pgpDigClean(dig); /[EMAIL PROTECTED]@*/ xx = pgpSetSig(rpmtsDig(ts), she->tag, she->t, she->p.ptr, she->c); @@ . patch -p0 <<'@@ .' Index: rpm/perl/rpmxs.c ============================================================================ $ cvs diff -u -r1.4 -r1.5 rpmxs.c --- rpm/perl/rpmxs.c 14 Aug 2007 01:19:41 -0000 1.4 +++ rpm/perl/rpmxs.c 20 Nov 2007 17:37:03 -0000 1.5 @@ -13,8 +13,9 @@ #include <utime.h> #include <utime.h> -#include "rpmlib.h" #include "rpmio.h" +#include "rpmlib.h" +#include "rpmbuild.h" #include "rpmconstant.h" #include "rpmxs.h" @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/hdrfmt.c ============================================================================ $ cvs diff -u -r1.34 -r1.35 hdrfmt.c --- rpm/rpmdb/hdrfmt.c 14 Nov 2007 23:56:33 -0000 1.34 +++ rpm/rpmdb/hdrfmt.c 20 Nov 2007 17:37:03 -0000 1.35 @@ -655,7 +655,7 @@ if (pktlen == 0 || tag != PGPTAG_SIGNATURE) { val = xstrdup(_("(not an OpenPGP signature)")); } else { - pgpDig dig = pgpNewDig(0); + pgpDig dig = pgpDigNew(0); pgpDigParams sigp = pgpGetSignature(dig); size_t nb = 0; const char *tempstr; @@ -714,7 +714,7 @@ goto again; t = stpcpy(t, tempstr); - dig = pgpFreeDig(dig); + dig = pgpDigFree(dig); } } @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/pkgio.c ============================================================================ $ cvs diff -u -r1.42 -r1.43 pkgio.c --- rpm/rpmdb/pkgio.c 19 Nov 2007 22:22:09 -0000 1.42 +++ rpm/rpmdb/pkgio.c 20 Nov 2007 17:37:03 -0000 1.43 @@ -285,7 +285,7 @@ { /[EMAIL PROTECTED]@*/ /* FIX: hide lazy malloc for now */ if (ts->dig == NULL) { - ts->dig = pgpNewDig(0); + ts->dig = pgpDigNew(0); /[EMAIL PROTECTED]@*/ (void) pgpSetFindPubkey(ts->dig, (int (*)(void *, void *))rpmtsFindPubkey, ts); /[EMAIL PROTECTED]@*/ @@ -302,7 +302,7 @@ (void) rpmswAdd(rpmtsOp(ts, opx), pgpStatsAccumulator(ts->dig, opx)); opx = RPMTS_OP_SIGNATURE; (void) rpmswAdd(rpmtsOp(ts, opx), pgpStatsAccumulator(ts->dig, opx)); - ts->dig = pgpFreeDig(ts->dig); + ts->dig = pgpDigFree(ts->dig); } } @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/rpmwf.c ============================================================================ $ cvs diff -u -r1.10 -r1.11 rpmwf.c --- rpm/rpmdb/rpmwf.c 16 Nov 2007 09:40:46 -0000 1.10 +++ rpm/rpmdb/rpmwf.c 20 Nov 2007 17:37:03 -0000 1.11 @@ -300,12 +300,37 @@ return RPMRC_OK; } +rpmwf XrpmwfUnlink(rpmwf wf, const char * msg, const char * fn, unsigned ln) +{ + if (wf == NULL) return NULL; +/[EMAIL PROTECTED]@*/ +if (_rpmwf_debug && msg != NULL) +fprintf(stderr, "--> wf %p -- %d %s at %s:%u\n", wf, wf->nrefs, msg, fn, ln); +/[EMAIL PROTECTED]@*/ + wf->nrefs--; + return NULL; +} + +rpmwf XrpmwfLink(rpmwf wf, const char * msg, const char * fn, unsigned ln) +{ + if (wf == NULL) return NULL; + wf->nrefs++; + +/[EMAIL PROTECTED]@*/ +if (_rpmwf_debug && msg != NULL) +fprintf(stderr, "--> wf %p ++ %d %s at %s:%u\n", wf, wf->nrefs, msg, fn, ln); +/[EMAIL PROTECTED]@*/ + + /[EMAIL PROTECTED]@*/ return wf; /[EMAIL PROTECTED]@*/ +} + rpmwf rpmwfFree(rpmwf wf) { -if (_rpmwf_debug) -fprintf(stderr, "*** rpmwfFree(%p)\n", wf); if (wf) { + if (wf->nrefs > 1) + return rpmwfUnlink(wf, "rpmwfFree"); + if (wf->b == NULL) { /[EMAIL PROTECTED] -onlytrans @*/ /* rpm needs dependent, xar needs only */ wf->l = _free(wf->l); @@ -319,7 +344,12 @@ (void) rpmwfFiniRPM(wf); wf->fn = _free(wf->fn); + + (void) rpmwfUnlink(wf, "rpmwfFree"); + /[EMAIL PROTECTED] [EMAIL PROTECTED]/ + memset(wf, 0, sizeof(*wf)); /* XXX trash and burn */ wf = _free(wf); + /[EMAIL PROTECTED] [EMAIL PROTECTED]/ } return NULL; } @@ -340,7 +370,8 @@ if (_rpmwf_debug) fprintf(stderr, "*** rpmwfNew(%s) wf %p nb %u\n", wf->fn, wf, (unsigned)wf->nb); - return wf; + + return rpmwfLink(wf, "rpmwfNew"); } rpmwf rdRPM(const char * rpmfn) @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/rpmwf.h ============================================================================ $ cvs diff -u -r1.4 -r1.5 rpmwf.h --- rpm/rpmdb/rpmwf.h 14 Nov 2007 23:56:33 -0000 1.4 +++ rpm/rpmdb/rpmwf.h 20 Nov 2007 17:37:03 -0000 1.5 @@ -32,6 +32,8 @@ xar_iter_t i; #endif int first; +/[EMAIL PROTECTED]@*/ + int nrefs; /*!< Reference count. */ }; #endif @@ -71,6 +73,43 @@ /[EMAIL PROTECTED] fileSystem @*/ /[EMAIL PROTECTED] wf, fileSystem @*/; +/** + * Unreference a wrapper format instance. + * @param wf wrapper format + * @param msg + * @return NULL always + */ +/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ +rpmwf rpmwfUnlink (/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ rpmwf wf, + /[EMAIL PROTECTED]@*/ const char * msg) + /[EMAIL PROTECTED] wf @*/; + +/** @todo Remove debugging entry from the ABI. */ +/[EMAIL PROTECTED]@*/ +/[EMAIL PROTECTED]@*/ +rpmwf XrpmwfUnlink (/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ rpmwf wf, + /[EMAIL PROTECTED]@*/ const char * msg, const char * fn, unsigned ln) + /[EMAIL PROTECTED] wf @*/; +/[EMAIL PROTECTED]@*/ +#define rpmwfUnlink(_wf, _msg) XrpmwfUnlink(_wf, _msg, __FILE__, __LINE__) + +/** + * Reference a wrapper format instance. + * @param wf wrapper format + * @param msg + * @return new wrapper format reference + */ +/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ +rpmwf rpmwfLink (/[EMAIL PROTECTED]@*/ rpmwf wf, /[EMAIL PROTECTED]@*/ const char * msg) + /[EMAIL PROTECTED] wf @*/; + +/** @todo Remove debugging entry from the ABI. */ +/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ +rpmwf XrpmwfLink (/[EMAIL PROTECTED]@*/ rpmwf wf, /[EMAIL PROTECTED]@*/ const char * msg, + const char * fn, unsigned ln) + /[EMAIL PROTECTED] wf @*/; +#define rpmwfLink(_wf, _msg) XrpmwfLink(_wf, _msg, __FILE__, __LINE__) + rpmwf rpmwfFree(/[EMAIL PROTECTED]@*/ rpmwf wf) /[EMAIL PROTECTED] fileSystem @*/ /[EMAIL PROTECTED] wf, fileSystem @*/; @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/signature.c ============================================================================ $ cvs diff -u -r1.29 -r1.30 signature.c --- rpm/rpmdb/signature.c 19 Nov 2007 18:57:59 -0000 1.29 +++ rpm/rpmdb/signature.c 20 Nov 2007 17:37:03 -0000 1.30 @@ -262,7 +262,7 @@ rpmlog(RPMLOG_DEBUG, D_("Got %u bytes of GPG sig\n"), (unsigned)*pktlenp); /* Parse the signature, change signature tag as appropriate. */ - dig = pgpNewDig(0); + dig = pgpDigNew(0); (void) pgpPrtPkts(*pktp, *pktlenp, dig, 0); sigp = pgpGetSignature(dig); @@ -287,7 +287,7 @@ break; } - dig = pgpFreeDig(dig); + dig = pgpDigFree(dig); return 0; } @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/librpmio.vers ============================================================================ $ cvs diff -u -r2.15 -r2.16 librpmio.vers --- rpm/rpmio/librpmio.vers 9 Nov 2007 18:00:07 -0000 2.15 +++ rpm/rpmio/librpmio.vers 20 Nov 2007 17:37:04 -0000 2.16 @@ -147,10 +147,13 @@ pgpArmorKeyTbl; pgpArmorTbl; pgpArmorWrap; - pgpCleanDig; pgpCompressionTbl; + pgpDigClean; + pgpDigFree; + pgpDigNew; + XpgpDigLink; + XpgpDigUnlink; pgpFindPubkey; - pgpFreeDig; pgpGetPubkey; pgpGetSignature; pgpGetSigtag; @@ -160,7 +163,6 @@ pgpGetVSFlags; pgpHashTbl; pgpKeyServerPrefsTbl; - pgpNewDig; pgpPrtComment; pgpPrtKey; pgpPrtPkt; @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmio_internal.h ============================================================================ $ cvs diff -u -r2.86 -r2.87 rpmio_internal.h --- rpm/rpmio/rpmio_internal.h 14 Nov 2007 23:56:35 -0000 2.86 +++ rpm/rpmio/rpmio_internal.h 20 Nov 2007 17:37:04 -0000 2.87 @@ -77,6 +77,8 @@ /[EMAIL PROTECTED] *_ts, *_dig @*/;/*!< Find pubkey, i.e. rpmtsFindPubkey(). */ /[EMAIL PROTECTED]@*/ void * _ts; /*!< Find pubkey argument, i.e. rpmts. */ +/[EMAIL PROTECTED]@*/ + int nrefs; /*!< Reference count. */ byte ** ppkts; int npkts; @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmpgp.c ============================================================================ $ cvs diff -u -r2.70 -r2.71 rpmpgp.c --- rpm/rpmio/rpmpgp.c 15 Nov 2007 17:27:59 -0000 2.70 +++ rpm/rpmio/rpmpgp.c 20 Nov 2007 17:37:04 -0000 2.71 @@ -12,7 +12,7 @@ /[EMAIL PROTECTED] pgpPkt @*/ /[EMAIL PROTECTED]@*/ -static int _debug = 0; +static int _pgp_debug = 0; /[EMAIL PROTECTED]@*/ static int _print = 0; @@ -272,15 +272,15 @@ t = xmalloc(2*nbytes+1); ix = 2 * ((nbits - mbits) >> 3); -if (_debug) +if (_pgp_debug) fprintf(stderr, "*** mbits %u nbits %u nbytes %u t %p[%d] ix %u\n", mbits, nbits, nbytes, t, (2*nbytes+1), ix); if (ix > 0) memset(t, (int)'0', ix); strcpy(t+ix, pgpMpiHex(p)); -if (_debug) +if (_pgp_debug) fprintf(stderr, "*** %s %s\n", pre, t); (void) mpnsethex(mpn, t); t = _free(t); -if (_debug && _print) +if (_pgp_debug && _print) fprintf(stderr, "\t %s ", pre), mpfprintln(stderr, mpn->size, mpn->data); return 0; } @@ -416,7 +416,7 @@ switch (i) { case 0: /* m**d */ (void) mpnsethex(&_dig->c, pgpMpiHex(p)); -if (_debug && _print) +if (_pgp_debug && _print) fprintf(stderr, "\t m**d = "), mpfprintln(stderr, _dig->c.size, _dig->c.data); /[EMAIL PROTECTED]@*/ break; default: @@ -518,7 +518,7 @@ if ((p + plen) > (pp->h + pp->hlen)) return 1; -if (_debug && _print) +if (_pgp_debug && _print) fprintf(stderr, " hash[%u] -- %s\n", plen, pgpHexStr(p, plen)); if (_digp && _digp->pubkey_algo == 0) { _digp->hashlen = sizeof(*v) + plen; @@ -533,7 +533,7 @@ if ((p + plen) > (pp->h + pp->hlen)) return 1; -if (_debug && _print) +if (_pgp_debug && _print) fprintf(stderr, " unhash[%u] -- %s\n", plen, pgpHexStr(p, plen)); (void) pgpPrtSubType(p, plen, v->sigtype); p += plen; @@ -630,12 +630,12 @@ switch (i) { case 0: /* n */ (void) mpbsethex(&_dig->rsa_pk.n, pgpMpiHex(p)); -if (_debug && _print) +if (_pgp_debug && _print) fprintf(stderr, "\t n = "), mpfprintln(stderr, _dig->rsa_pk.n.size, _dig->rsa_pk.n.modl); /[EMAIL PROTECTED]@*/ break; case 1: /* e */ (void) mpnsethex(&_dig->rsa_pk.e, pgpMpiHex(p)); -if (_debug && _print) +if (_pgp_debug && _print) fprintf(stderr, "\t e = "), mpfprintln(stderr, _dig->rsa_pk.e.size, _dig->rsa_pk.e.data); /[EMAIL PROTECTED]@*/ break; default: @@ -649,22 +649,22 @@ switch (i) { case 0: /* p */ (void) mpbsethex(&_dig->p, pgpMpiHex(p)); -if (_debug && _print) +if (_pgp_debug && _print) fprintf(stderr, "\t p = "), mpfprintln(stderr, _dig->p.size, _dig->p.modl); /[EMAIL PROTECTED]@*/ break; case 1: /* q */ (void) mpbsethex(&_dig->q, pgpMpiHex(p)); -if (_debug && _print) +if (_pgp_debug && _print) fprintf(stderr, "\t q = "), mpfprintln(stderr, _dig->q.size, _dig->q.modl); /[EMAIL PROTECTED]@*/ break; case 2: /* g */ (void) mpnsethex(&_dig->g, pgpMpiHex(p)); -if (_debug && _print) +if (_pgp_debug && _print) fprintf(stderr, "\t g = "), mpfprintln(stderr, _dig->g.size, _dig->g.data); /[EMAIL PROTECTED]@*/ break; case 3: /* y */ (void) mpnsethex(&_dig->y, pgpMpiHex(p)); -if (_debug && _print) +if (_pgp_debug && _print) fprintf(stderr, "\t y = "), mpfprintln(stderr, _dig->y.size, _dig->y.data); /[EMAIL PROTECTED]@*/ break; default: @@ -1027,14 +1027,31 @@ return (rc ? -1 : pp->pktlen); } -pgpDig pgpNewDig(pgpVSFlags vsflags) +pgpDig XpgpDigUnlink(pgpDig dig, const char * msg, const char * fn, unsigned ln) { - pgpDig dig = xcalloc(1, sizeof(*dig)); - dig->vsflags = vsflags; - return dig; + if (dig == NULL) return NULL; +/[EMAIL PROTECTED]@*/ +if (_pgp_debug && msg != NULL) +fprintf(stderr, "--> dig %p -- %d %s at %s:%u\n", dig, dig->nrefs, msg, fn, ln); +/[EMAIL PROTECTED]@*/ + dig->nrefs--; + return NULL; +} + +pgpDig XpgpDigLink(pgpDig dig, const char * msg, const char * fn, unsigned ln) +{ + if (dig == NULL) return NULL; + dig->nrefs++; + +/[EMAIL PROTECTED]@*/ +if (_pgp_debug && msg != NULL) +fprintf(stderr, "--> dig %p ++ %d %s at %s:%u\n", dig, dig->nrefs, msg, fn, ln); +/[EMAIL PROTECTED]@*/ + + /[EMAIL PROTECTED]@*/ return dig; /[EMAIL PROTECTED]@*/ } -void pgpCleanDig(pgpDig dig) +void pgpDigClean(pgpDig dig) { if (dig != NULL) { int i; @@ -1072,17 +1089,20 @@ /[EMAIL PROTECTED]@*/ } -pgpDig pgpFreeDig(/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ pgpDig dig) +pgpDig pgpDigFree(/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ pgpDig dig) /[EMAIL PROTECTED] dig @*/ { if (dig != NULL) { + if (dig->nrefs > 1) + return pgpDigUnlink(dig, "pgpDigFree"); + /* Lose the header tag data. */ /* XXX this free should be done somewhere else. */ dig->sig = _free(dig->sig); /* Dump the signature/pubkey data. */ - pgpCleanDig(dig); + pgpDigClean(dig); if (dig->hdrsha1ctx != NULL) (void) rpmDigestFinal(dig->hdrsha1ctx, NULL, NULL, 0); @@ -1116,11 +1136,22 @@ mpnfree(&dig->c); mpnfree(&dig->hm); + (void) pgpDigUnlink(dig, "pgpDigFree"); + /[EMAIL PROTECTED] [EMAIL PROTECTED]/ + memset(dig, 0, sizeof(*dig)); /* XXX trash and burn */ dig = _free(dig); + /[EMAIL PROTECTED] [EMAIL PROTECTED]/ } return dig; } +pgpDig pgpDigNew(pgpVSFlags vsflags) +{ + pgpDig dig = xcalloc(1, sizeof(*dig)); + dig->vsflags = vsflags; + return pgpDigLink(dig, "pgpDigNew"); +} + pgpDigParams pgpGetSignature(pgpDig dig) { return (dig ? &dig->signature : NULL); @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmpgp.h ============================================================================ $ cvs diff -u -r2.54 -r2.55 rpmpgp.h --- rpm/rpmio/rpmpgp.h 19 Nov 2007 21:50:18 -0000 2.54 +++ rpm/rpmio/rpmpgp.h 20 Nov 2007 17:37:04 -0000 2.55 @@ -1358,27 +1358,64 @@ RPMVSF_NORSA ) /** - * Create a container for parsed OpenPGP packates. - * @return container + * Unreference a signature parameters instance. + * @param dig signature parameters + * @param msg + * @return NULL always */ -/[EMAIL PROTECTED]@*/ -pgpDig pgpNewDig(pgpVSFlags vsflags) - /[EMAIL PROTECTED]/; +/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ +pgpDig pgpDigUnlink (/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ pgpDig dig, + /[EMAIL PROTECTED]@*/ const char * msg) + /[EMAIL PROTECTED] dig @*/; + +/** @todo Remove debugging entry from the ABI. */ +/[EMAIL PROTECTED]@*/ +/[EMAIL PROTECTED]@*/ +pgpDig XpgpDigUnlink (/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ pgpDig dig, + /[EMAIL PROTECTED]@*/ const char * msg, const char * fn, unsigned ln) + /[EMAIL PROTECTED] dig @*/; +/[EMAIL PROTECTED]@*/ +#define pgpDigUnlink(_dig, _msg) XpgpDigUnlink(_dig, _msg, __FILE__, __LINE__) /** - * Release (malloc'd) data from container. - * @param dig signature parameters container + * Reference a signature parameters instance. + * @param dig signature parameters + * @param msg + * @return new signature parameters reference */ -void pgpCleanDig(/[EMAIL PROTECTED]@*/ pgpDig dig) +/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ +pgpDig pgpDigLink (/[EMAIL PROTECTED]@*/ pgpDig dig, /[EMAIL PROTECTED]@*/ const char * msg) /[EMAIL PROTECTED] dig @*/; +/** @todo Remove debugging entry from the ABI. */ +/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ +pgpDig XpgpDigLink (/[EMAIL PROTECTED]@*/ pgpDig dig, /[EMAIL PROTECTED]@*/ const char * msg, + const char * fn, unsigned ln) + /[EMAIL PROTECTED] dig @*/; +#define pgpDigLink(_dig, _msg) XpgpDigLink(_dig, _msg, __FILE__, __LINE__) + /** * Destroy a container for parsed OpenPGP packates. * @param dig signature parameters container * @return NULL always */ /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ -pgpDig pgpFreeDig(/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ pgpDig dig) +pgpDig pgpDigFree(/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ pgpDig dig) + /[EMAIL PROTECTED] dig @*/; + +/** + * Create a container for parsed OpenPGP packates. + * @return container + */ +/[EMAIL PROTECTED]@*/ +pgpDig pgpDigNew(pgpVSFlags vsflags) + /[EMAIL PROTECTED]/; + +/** + * Release (malloc'd) data from container. + * @param dig signature parameters container + */ +void pgpDigClean(/[EMAIL PROTECTED]@*/ pgpDig dig) /[EMAIL PROTECTED] dig @*/; /** @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/thkp.c ============================================================================ $ cvs diff -u -r2.12 -r2.13 thkp.c --- rpm/rpmio/thkp.c 18 Sep 2007 06:47:54 -0000 2.12 +++ rpm/rpmio/thkp.c 20 Nov 2007 17:37:04 -0000 2.13 @@ -51,7 +51,7 @@ int rc; int ec = 0; - dig = pgpNewDig(0); + dig = pgpDigNew(0); for (kip = keyids; *kip; kip += 2) { pgpArmor pa; @@ -77,12 +77,12 @@ fprintf(stderr, "KEYID: %08x %08x\n", pgpGrab(keyid, 4), pgpGrab(keyid+4, 4)); - pgpCleanDig(dig); + pgpDigClean(dig); free((void *)pkt); pkt = NULL; } - dig = pgpFreeDig(dig); + dig = pgpDigFree(dig); return ec; } @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/tkey.c ============================================================================ $ cvs diff -u -r2.18 -r2.19 tkey.c --- rpm/rpmio/tkey.c 18 Sep 2007 06:47:54 -0000 2.18 +++ rpm/rpmio/tkey.c 20 Nov 2007 17:37:04 -0000 2.19 @@ -106,7 +106,7 @@ int printing = 1; int rc; - dig = pgpNewDig(0); + dig = pgpDigNew(0); mpbzero(&dig->p); mpbsethex(&dig->p, fips_p); mpbzero(&dig->q); mpbsethex(&dig->q, fips_q); @@ -176,7 +176,7 @@ mpnfree(&dig->r); mpnfree(&dig->s); - dig = pgpFreeDig(dig); + dig = pgpDigFree(dig); return rc; } @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org