RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 21-Mar-2009 16:25:13 Branch: HEAD Handle: 2009032115251102 Modified files: rpm CHANGES rpm/lib rpmchecksig.c rpm/python rpmts-py.c rpm/rpmdb hdrfmt.c pkgio.c rpmwf.c signature.c rpm/rpmio librpmio.vers rpmio.c rpmio_internal.h rpmpgp.c rpmpgp.h rpmxar.c rpmxar.h Log: - yarn: wire up rpmxarFini, eliminate rpmxarFree. - yarn: wire up pgpDigFini, eliminate pgpDigFree. Summary: Revision Changes Path 1.2856 +2 -0 rpm/CHANGES 1.227 +2 -2 rpm/lib/rpmchecksig.c 1.96 +1 -1 rpm/python/rpmts-py.c 1.130 +1 -1 rpm/rpmdb/hdrfmt.c 1.92 +3 -3 rpm/rpmdb/pkgio.c 1.26 +3 -3 rpm/rpmdb/rpmwf.c 1.59 +1 -1 rpm/rpmdb/signature.c 2.100 +0 -4 rpm/rpmio/librpmio.vers 1.172 +2 -2 rpm/rpmio/rpmio.c 2.113 +1 -1 rpm/rpmio/rpmio_internal.h 2.102 +43 -55 rpm/rpmio/rpmpgp.c 2.82 +6 -11 rpm/rpmio/rpmpgp.h 2.21 +19 -31 rpm/rpmio/rpmxar.c 2.12 +5 -2 rpm/rpmio/rpmxar.h ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/CHANGES ============================================================================ $ cvs diff -u -r1.2855 -r1.2856 CHANGES --- rpm/CHANGES 21 Mar 2009 14:21:03 -0000 1.2855 +++ rpm/CHANGES 21 Mar 2009 15:25:11 -0000 1.2856 @@ -1,5 +1,7 @@ 5.2a3 -> 5.2a4: + - jbj: yarn: wire up rpmxarFini, eliminate rpmxarFree. + - jbj: yarn: wire up pgpDigFini, eliminate pgpDigFree. - jbj: yarn: wire up urlFini, eliminate XurlFree. - jbj: yarn: wire up fdFini, eliminate XfdFree. - jbj: url: fix: u->use clobbers the lock from the pool. @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmchecksig.c ============================================================================ $ cvs diff -u -r1.226 -r1.227 rpmchecksig.c --- rpm/lib/rpmchecksig.c 12 Mar 2009 20:10:39 -0000 1.226 +++ rpm/lib/rpmchecksig.c 21 Mar 2009 15:25:11 -0000 1.227 @@ -163,7 +163,7 @@ } he->p.ptr = _free(he->p.ptr); - dig = pgpDigFree(dig); + dig = pgpDigFree(dig, "getSignid"); } return rc; } @@ -701,7 +701,7 @@ exit: /* Clean up. */ h = headerFree(h); - dig = pgpDigFree(dig); + dig = pgpDigFree(dig, "rpmcliImportPubkey"); n = _free(n); u = _free(u); v = _free(v); @@ . patch -p0 <<'@@ .' Index: rpm/python/rpmts-py.c ============================================================================ $ cvs diff -u -r1.95 -r1.96 rpmts-py.c --- rpm/python/rpmts-py.c 6 Oct 2008 19:05:32 -0000 1.95 +++ rpm/python/rpmts-py.c 21 Mar 2009 15:25:12 -0000 1.96 @@ -996,7 +996,7 @@ dig = pgpDigNew(rpmtsVSFlags(s->ts)); rpmrc = headerCheck(dig, uh, uc, &msg); - dig = pgpDigFree(dig); + dig = pgpDigFree(dig, "rpmts_HdrCheck"); switch (rpmrc) { case RPMRC_OK: @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/hdrfmt.c ============================================================================ $ cvs diff -u -r1.129 -r1.130 hdrfmt.c --- rpm/rpmdb/hdrfmt.c 27 Jan 2009 15:05:05 -0000 1.129 +++ rpm/rpmdb/hdrfmt.c 21 Mar 2009 15:25:12 -0000 1.130 @@ -1197,7 +1197,7 @@ goto again; t = stpcpy(t, tempstr); - dig = pgpDigFree(dig); + dig = pgpDigFree(dig, "pgpsigFormat"); } } @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/pkgio.c ============================================================================ $ cvs diff -u -r1.91 -r1.92 pkgio.c --- rpm/rpmdb/pkgio.c 13 Dec 2008 22:56:33 -0000 1.91 +++ rpm/rpmdb/pkgio.c 21 Mar 2009 15:25:12 -0000 1.92 @@ -366,7 +366,7 @@ opx = RPMTS_OP_SIGNATURE; (void) rpmswAdd(rpmtsOp(ts, opx), pgpStatsAccumulator(ts->dig, opx)); /*...@-onlytrans@*/ - ts->dig = pgpDigFree(ts->dig); + ts->dig = pgpDigFree(ts->dig, "rpmtsCleanDig"); /*...@=onlytrans@*/ } } @@ -488,7 +488,7 @@ assert(fn != NULL); xar = rpmxarNew(fn, "r"); fdSetXAR(fd, xar); - (void) rpmxarFree(xar); + (void) rpmxarFree(xar, "rdLead"); } } @@ -1371,7 +1371,7 @@ if (hdrp && h && rc == RPMRC_OK) *hdrp = headerLink(h); ei = _free(ei); - dig = pgpDigFree(dig); + dig = pgpDigFree(dig, "rpmReadHeader"); h = headerFree(h); if (msg != NULL && *msg == NULL && buf[0] != '\0') { @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/rpmwf.c ============================================================================ $ cvs diff -u -r1.25 -r1.26 rpmwf.c --- rpm/rpmdb/rpmwf.c 11 Dec 2008 23:31:57 -0000 1.25 +++ rpm/rpmdb/rpmwf.c 21 Mar 2009 15:25:12 -0000 1.26 @@ -226,7 +226,7 @@ /*...@=dependenttrans@*/ } - wf->xar = rpmxarFree(wf->xar); + wf->xar = rpmxarFree(wf->xar, "rpmwfFree"); (void) rpmwfFini(wf); wf->fn = _free(wf->fn); @@ -316,7 +316,7 @@ while (rpmxarNext(wf->xar) == 0) rc = rpmwfPullXAR(wf, NULL); - wf->xar = rpmxarFree(wf->xar); + wf->xar = rpmxarFree(wf->xar, "rdXAR"); /*...@-noeffect@*/ if (_rpmwf_debug) rpmwfDump(wf, "rdXAR", xarfn); @@ -347,7 +347,7 @@ goto exit; exit: - wf->xar = rpmxarFree(wf->xar); + wf->xar = rpmxarFree(wf->xar, "wrXAR"); return rc; } @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/signature.c ============================================================================ $ cvs diff -u -r1.58 -r1.59 signature.c --- rpm/rpmdb/signature.c 25 Dec 2008 02:27:15 -0000 1.58 +++ rpm/rpmdb/signature.c 21 Mar 2009 15:25:12 -0000 1.59 @@ -278,7 +278,7 @@ break; } - dig = pgpDigFree(dig); + dig = pgpDigFree(dig, "makeGPGSignature"); return 0; } @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/librpmio.vers ============================================================================ $ cvs diff -u -r2.99 -r2.100 librpmio.vers --- rpm/rpmio/librpmio.vers 21 Mar 2009 14:21:03 -0000 2.99 +++ rpm/rpmio/librpmio.vers 21 Mar 2009 15:25:12 -0000 2.100 @@ -202,7 +202,6 @@ pgpArmorWrap; pgpCompressionTbl; pgpDigClean; - pgpDigFree; pgpDigNew; pgpDigVSFlags; _pgp_debug; @@ -415,14 +414,11 @@ rpmswPrint; rpmswSub; rpmUndefineMacro; - rpmxarFree; - XrpmxarLink; rpmxarNew; rpmxarNext; rpmxarPush; rpmxarPull; rpmxarSwapBuf; - XrpmxarUnlink; rpmuuidMake; rpmzLogAdd; rpmzLogDump; @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmio.c ============================================================================ $ cvs diff -u -r1.171 -r1.172 rpmio.c --- rpm/rpmio/rpmio.c 20 Mar 2009 21:24:49 -0000 1.171 +++ rpm/rpmio/rpmio.c 21 Mar 2009 15:25:12 -0000 1.172 @@ -289,9 +289,9 @@ fd->contentDisposition = _free(fd->contentDisposition); /*...@-onlytrans@*/ #ifdef WITH_XAR - fd->xar = rpmxarFree(fd->xar); + fd->xar = rpmxarFree(fd->xar, "fdFini"); #endif - fd->dig = pgpDigFree(fd->dig); + fd->dig = pgpDigFree(fd->dig, "fdFini"); /*...@=onlytrans@*/ } @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmio_internal.h ============================================================================ $ cvs diff -u -r2.112 -r2.113 rpmio_internal.h --- rpm/rpmio/rpmio_internal.h 20 Mar 2009 18:28:35 -0000 2.112 +++ rpm/rpmio/rpmio_internal.h 21 Mar 2009 15:25:12 -0000 2.113 @@ -234,7 +234,7 @@ /*...@modifies fd, dig @*/ { FDSANE(fd); - fd->dig = pgpDigFree(fd->dig); + fd->dig = pgpDigFree(fd->dig, "fdSetDig"); fd->dig = pgpDigLink(dig, "fdSetDig"); } @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmpgp.c ============================================================================ $ cvs diff -u -r2.101 -r2.102 rpmpgp.c --- rpm/rpmio/rpmpgp.c 20 Mar 2009 18:28:35 -0000 2.101 +++ rpm/rpmio/rpmpgp.c 21 Mar 2009 15:25:13 -0000 2.102 @@ -1011,22 +1011,6 @@ /*...@unchecked@*/ pgpVSFlags pgpDigVSFlags; -/*...@unchecked@*/ /*...@null@*/ -rpmioPool _digPool; - -static pgpDig digGetPool(/*...@null@*/ rpmioPool pool) - /*...@modifies pool @*/ -{ - pgpDig dig; - - if (_digPool == NULL) { - _digPool = rpmioNewPool("dig", sizeof(*dig), -1, _pgp_debug, - NULL, NULL, NULL); - pool = _digPool; - } - return (pgpDig) rpmioGetPool(pool, sizeof(*dig)); -} - void pgpDigClean(pgpDig dig) { if (dig != NULL) { @@ -1060,57 +1044,61 @@ /*...@=nullstate@*/ } -pgpDig pgpDigFree(pgpDig dig) +static void pgpDigFini(void * _dig) + /*...@modifies _dig @*/ { - if (dig == NULL) - return NULL; + pgpDig dig = _dig; -/*...@-onlytrans@*/ - yarnPossess(dig->_item.use); -/*...@-modfilesys@*/ -if (_pgp_debug < 0) -fprintf(stderr, "--> dig %p -- %ld %s at %s:%u\n", dig, yarnPeekLock(dig->_item.use), "pgpDigFree", __FILE__, __LINE__); -/*...@=modfilesys@*/ - if (yarnPeekLock(dig->_item.use) <= 1L) { - /* Lose the header tag data. */ - /* XXX this free should be done somewhere else. */ - dig->sig = _free(dig->sig); + /* Lose the header tag data. */ + /* XXX this free should be done somewhere else. */ + dig->sig = _free(dig->sig); - /* XXX there's a recursion here ... release and reacquire the lock */ + /* XXX there's a recursion here ... release and reacquire the lock */ #ifndef BUGGY - yarnRelease(dig->_item.use); + yarnRelease(dig->_item.use); #endif - /* Dump the signature/pubkey data. */ - pgpDigClean(dig); + /* Dump the signature/pubkey data. */ + pgpDigClean(dig); #ifndef BUGGY - yarnPossess(dig->_item.use); + yarnPossess(dig->_item.use); #endif - if (dig->hdrsha1ctx != NULL) - (void) rpmDigestFinal(dig->hdrsha1ctx, NULL, NULL, 0); - dig->hdrsha1ctx = NULL; - - if (dig->sha1ctx != NULL) - (void) rpmDigestFinal(dig->sha1ctx, NULL, NULL, 0); - dig->sha1ctx = NULL; + if (dig->hdrsha1ctx != NULL) + (void) rpmDigestFinal(dig->hdrsha1ctx, NULL, NULL, 0); + dig->hdrsha1ctx = NULL; + + if (dig->sha1ctx != NULL) + (void) rpmDigestFinal(dig->sha1ctx, NULL, NULL, 0); + dig->sha1ctx = NULL; #ifdef NOTYET - if (dig->hdrmd5ctx != NULL) - (void) rpmDigestFinal(dig->hdrmd5ctx, NULL, NULL, 0); - dig->hdrmd5ctx = NULL; + if (dig->hdrmd5ctx != NULL) + (void) rpmDigestFinal(dig->hdrmd5ctx, NULL, NULL, 0); + dig->hdrmd5ctx = NULL; #endif - if (dig->md5ctx != NULL) - (void) rpmDigestFinal(dig->md5ctx, NULL, NULL, 0); - dig->md5ctx = NULL; + if (dig->md5ctx != NULL) + (void) rpmDigestFinal(dig->md5ctx, NULL, NULL, 0); + dig->md5ctx = NULL; - dig->impl = pgpImplFree(dig->impl); + dig->impl = pgpImplFree(dig->impl); -/*...@=onlytrans@*/ - dig = (pgpDig) rpmioPutPool((rpmioItem)dig); - } else - yarnTwist(dig->_item.use, BY, -1); - return NULL; +} + +/*...@unchecked@*/ /*...@null@*/ +rpmioPool _digPool; + +static pgpDig digGetPool(/*...@null@*/ rpmioPool pool) + /*...@modifies pool @*/ +{ + pgpDig dig; + + if (_digPool == NULL) { + _digPool = rpmioNewPool("dig", sizeof(*dig), -1, _pgp_debug, + NULL, NULL, pgpDigFini); + pool = _digPool; + } + return (pgpDig) rpmioGetPool(pool, sizeof(*dig)); } pgpDig pgpDigNew(/*...@unused@*/ pgpVSFlags vsflags) @@ -1266,7 +1254,7 @@ _digp = NULL; if (pgpGrabPkts(pkts, pktlen, &ppkts, &npkts) || ppkts == NULL) { - _dig = pgpDigFree(_dig); + _dig = pgpDigFree(_dig, "pgpPrtPkts"); return -1; } @@ -1283,7 +1271,7 @@ } else ppkts = _free(ppkts); - _dig = pgpDigFree(_dig); + _dig = pgpDigFree(_dig, "pgpPrtPkts"); return 0; } /*...@=globstate =incondefs =nullderef @*/ @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmpgp.h ============================================================================ $ cvs diff -u -r2.81 -r2.82 rpmpgp.h --- rpm/rpmio/rpmpgp.h 20 Mar 2009 18:28:35 -0000 2.81 +++ rpm/rpmio/rpmpgp.h 21 Mar 2009 15:25:13 -0000 2.82 @@ -1359,15 +1359,8 @@ pgpDig pgpDigUnlink (/*...@killref@*/ /*...@only@*/ /*...@null@*/ pgpDig dig, /*...@null@*/ const char * msg) /*...@modifies dig @*/; - -/** @todo Remove debugging entry from the ABI. */ -/*...@-exportlocal@*/ -/*...@null@*/ -pgpDig XpgpDigUnlink (/*...@killref@*/ /*...@only@*/ /*...@null@*/ pgpDig dig, - /*...@null@*/ const char * msg, const char * fn, unsigned ln) - /*...@modifies dig @*/; -/*...@=exportlocal@*/ -#define pgpDigUnlink(_dig, _msg) XpgpDigUnlink(_dig, _msg, __FILE__, __LINE__) +#define pgpDigUnlink(_dig, _msg) \ + ((pgpDig)rpmioUnlinkPoolItem((rpmioItem)(_dig), _msg, __FILE__, __LINE__)) /** \ingroup rpmpgp * Reference a signature parameters instance. @@ -1379,16 +1372,18 @@ pgpDig pgpDigLink (/*...@null@*/ pgpDig dig, /*...@null@*/ const char * msg) /*...@modifies dig @*/; #define pgpDigLink(_dig, _msg) \ - ((pgpDig)rpmioLinkPoolItem((rpmioItem)(_dig), _msg, __FILE__, __LINE__)) + ((pgpDig)rpmioLinkPoolItem((rpmioItem)(_dig), _msg, __FILE__, __LINE__)) /** \ingroup rpmpgp * Destroy a container for parsed OpenPGP packates. * @param dig signature parameters container * @return NULL always */ -/*...@null@*/ +/*...@unused@*/ /*...@null@*/ pgpDig pgpDigFree(/*...@killref@*/ /*...@only@*/ /*...@null@*/ pgpDig dig) /*...@modifies dig @*/; +#define pgpDigFree(_dig, _msg) \ + ((pgpDig)rpmioFreePoolItem((rpmioItem)(_dig), _msg, __FILE__, __LINE__)) /** \ingroup rpmpgp * Create a container for parsed OpenPGP packates. @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmxar.c ============================================================================ $ cvs diff -u -r2.20 -r2.21 rpmxar.c --- rpm/rpmio/rpmxar.c 20 Mar 2009 18:28:35 -0000 2.20 +++ rpm/rpmio/rpmxar.c 21 Mar 2009 15:25:13 -0000 2.21 @@ -70,6 +70,24 @@ /*...@unchecked@*/ /*...@null@*/ rpmioPool _xarPool; +static void rpmxarFini(void * _xar) + /*@ modifies *_xar @*/ +{ + rpmxar xar =_xar; + if (xar->i) { + xar_iter_free(xar->i); + xar->i = NULL; + } + if (xar->x) { + int xx; + xx = xar_close(xar->x); + xar->x = NULL; + } + + xar->member = _free(xar->member); + xar->b = _free(xar->b); +} + static rpmxar rpmxarGetPool(/*...@null@*/ rpmioPool pool) /*...@modifies pool @*/ { @@ -77,41 +95,11 @@ if (_xarPool == NULL) { _xarPool = rpmioNewPool("xar", sizeof(*xar), -1, _xar_debug, - NULL, NULL, NULL); + NULL, NULL, rpmxarFini); pool = _xarPool; } return (rpmxar) rpmioGetPool(pool, sizeof(*xar)); } -rpmxar rpmxarFree(rpmxar xar) -{ - if (xar == NULL) - return NULL; - yarnPossess(xar->_item.use); -/*...@-modfilesys@*/ -if (_xar_debug) -fprintf(stderr, "--> xar %p -- %ld %s at %s:%u\n", xar, yarnPeekLock(xar->_item.use), "rpmxarFree", __FILE__, __LINE__); -/*...@=modfilesys@*/ - if (yarnPeekLock(xar->_item.use) <= 1L) { -/*...@-onlytrans@*/ - if (xar->i) { - xar_iter_free(xar->i); - xar->i = NULL; - } - if (xar->x) { - int xx; - xx = xar_close(xar->x); - xar->x = NULL; - } - - xar->member = _free(xar->member); - xar->b = _free(xar->b); - -/*...@=onlytrans@*/ - xar = (rpmxar) rpmioPutPool((rpmioItem)xar); - } else - yarnTwist(xar->_item.use, BY, -1); - return NULL; -} rpmxar rpmxarNew(const char * fn, const char * fmode) { @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmxar.h ============================================================================ $ cvs diff -u -r2.11 -r2.12 rpmxar.h --- rpm/rpmio/rpmxar.h 20 Mar 2009 18:28:35 -0000 2.11 +++ rpm/rpmio/rpmxar.h 21 Mar 2009 15:25:13 -0000 2.12 @@ -62,9 +62,12 @@ #define rpmxarLink(_xar, _msg) \ ((rpmxar)rpmioLinkPoolItem((rpmioItem)(_xar), _msg, __FILE__, __LINE__)) -/*...@null@*/ -rpmxar rpmxarFree(/*...@killref@*/ /*...@only@*/ rpmxar xar) +/*...@unused@*/ /*...@null@*/ +rpmxar rpmxarFree(/*...@killref@*/ /*...@only@*/ rpmxar xar, + /*...@null@*/ const char * msg) /*...@modifies xar @*/; +#define rpmxarFree(_xar, _msg) \ + ((rpmxar)rpmioFreePoolItem((rpmioItem)(_xar), _msg, __FILE__, __LINE__)) /*...@-globuse@*/ /*...@relnull@*/ @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org