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 18:32:47 Branch: HEAD Handle: 2009032117324502 Modified files: rpm CHANGES rpm/lib depends.c librpm.vers psm.c psm.h rpmgi.c rpmte.c rpmte.h rpmts.c rpmts.h transaction.c verify.c rpm/python rpmts-py.c rpm/rpmdb pkgio.c rpm/rpmio poptIO.c Log: - pgpDig: fix: rpmioFreePoolItem() can return non-NULL, clear ts->dig. - rpmio: add --pgpdebug for pgpDig debugging. - yarn: wire up rpmtsiFini, eliminate rpmtsiFree. - yarn: wire up rpmpsmFini, eliminate rpmpsmFree. Summary: Revision Changes Path 1.2857 +4 -0 rpm/CHANGES 1.433 +23 -19 rpm/lib/depends.c 1.62 +0 -2 rpm/lib/librpm.vers 2.349 +27 -44 rpm/lib/psm.c 2.71 +4 -1 rpm/lib/psm.h 2.60 +4 -2 rpm/lib/rpmgi.c 2.95 +19 -31 rpm/lib/rpmte.c 2.61 +4 -15 rpm/lib/rpmte.h 2.162 +6 -3 rpm/lib/rpmts.c 2.112 +1 -1 rpm/lib/rpmts.h 1.395 +22 -19 rpm/lib/transaction.c 2.195 +1 -1 rpm/lib/verify.c 1.97 +2 -1 rpm/python/rpmts-py.c 1.93 +2 -1 rpm/rpmdb/pkgio.c 1.33 +4 -0 rpm/rpmio/poptIO.c ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/CHANGES ============================================================================ $ cvs diff -u -r1.2856 -r1.2857 CHANGES --- rpm/CHANGES 21 Mar 2009 15:25:11 -0000 1.2856 +++ rpm/CHANGES 21 Mar 2009 17:32:45 -0000 1.2857 @@ -1,5 +1,9 @@ 5.2a3 -> 5.2a4: + - jbj: pgpDig: fix: rpmioFreePoolItem() can return non-NULL, clear ts->dig. + - jbj: rpmio: add --pgpdebug for pgpDig debugging. + - jbj: yarn: wire up rpmtsiFini, eliminate rpmtsiFree. + - jbj: yarn: wire up rpmpsmFini, eliminate rpmpsmFree. - jbj: yarn: wire up rpmxarFini, eliminate rpmxarFree. - jbj: yarn: wire up pgpDigFini, eliminate pgpDigFree. - jbj: yarn: wire up urlFini, eliminate XurlFree. @@ . patch -p0 <<'@@ .' Index: rpm/lib/depends.c ============================================================================ $ cvs diff -u -r1.432 -r1.433 depends.c --- rpm/lib/depends.c 6 Mar 2009 18:16:17 -0000 1.432 +++ rpm/lib/depends.c 21 Mar 2009 17:32:45 -0000 1.433 @@ -542,6 +542,7 @@ int rpmtsAddInstallElement(rpmts ts, Header h, fnpyKey key, int upgrade, rpmRelocation relocs) { + static const char msg[] = "rpmtsAddInstallElement"; HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); rpmdepFlags depFlags = rpmtsDFlags(ts); rpmuint32_t tscolor = rpmtsColor(ts); @@ -701,7 +702,7 @@ break; } } - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); oldChk = rpmdsFree(oldChk); newChk = rpmdsFree(newChk); @@ -801,7 +802,7 @@ exit: arch = _free(arch); os = _free(os); - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); return ec; } @@ -2087,6 +2088,7 @@ /*...@modifies ts, p, *selected, rpmGlobalMacroContext, fileSystem, internalState @*/ { + static const char msg[] = "addRelation"; rpmtsi qi; rpmte q; tsortInfo tsi; nsType NSType = rpmdsNSType(requires); @@ -2139,7 +2141,7 @@ if (pkgKey == rpmteAddedKey(q)) break; } - qi = rpmtsiFree(qi); + qi = rpmtsiFree(qi, msg); if (q == NULL || i >= ts->orderCount) return 0; @@ -2287,6 +2289,7 @@ int rpmtsOrder(rpmts ts) { + static const char msg[] = "rpmtsOrder"; rpmds requires; rpmuint32_t Flags; int anaconda = rpmtsDFlags(ts) & RPMDEPS_FLAG_ANACONDA; @@ -2338,7 +2341,7 @@ pkgKey = (alKey)(((long)pkgKey) + ts->numAddedPackages); (void) rpmteSetAddedKey(p, pkgKey); } - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); rpmalMakeIndex(ts->erasedPackages); (void) rpmswEnter(rpmtsOp(ts, RPMTS_OP_ORDER), 0); @@ -2360,7 +2363,7 @@ pi = rpmtsiInit(ts); while ((p = rpmtsiNext(pi, oType)) != NULL) rpmteNewTSI(p); - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); /* Record all relations. */ rpmlog(RPMLOG_DEBUG, D_("========== recording tsort relations\n")); @@ -2446,7 +2449,7 @@ p->type = TR_REMOVED; } } - qi = rpmtsiFree(qi); + qi = rpmtsiFree(qi, msg); } { @@ -2477,7 +2480,7 @@ } } - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); /* Save predecessor count and mark tree roots. */ treex = 0; @@ -2501,14 +2504,14 @@ #endif } - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); ts->ntrees = treex; /* T4. Scan for zeroes. */ rpmlog(RPMLOG_DEBUG, D_("========== tsorting packages (order, #predecessors, #succesors, tree, Ldepth, Rbreadth)\n")); rescan: - if (pi != NULL) pi = rpmtsiFree(pi); + if (pi != NULL) pi = rpmtsiFree(pi, msg); q = r = NULL; qlen = 0; pi = rpmtsiInit(ts); @@ -2524,7 +2527,7 @@ addQ(p, &q, &r, prefcolor); qlen++; } - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); /* T5. Output front of queue (T7. Remove from queue.) */ for (; q != NULL; q = rpmteTSI(q)->tsi_suc) { @@ -2608,7 +2611,7 @@ tsi->tsi_suc = p; tsi = rpmteTSI(p); } - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); tsi->tsi_suc = NULL; } } @@ -2627,7 +2630,7 @@ if (rpmteTSI(q)->tsi_count == 0) rpmteTSI(q)->tsi_count = -1; } - qi = rpmtsiFree(qi); + qi = rpmtsiFree(qi, msg); /* T10. Mark all packages with their predecessors. */ qi = rpmtsiInit(ts); @@ -2638,7 +2641,7 @@ markLoop(tsi, q); rpmteTSI(q)->tsi_next = tsi; } - qi = rpmtsiFree(qi); + qi = rpmtsiFree(qi, msg); /* T11. Print all dependency loops. */ ri = rpmtsiInit(ts); @@ -2700,7 +2703,7 @@ rpmteTSI(p)->tsi_queued = 0; } } - ri = rpmtsiFree(ri); + ri = rpmtsiFree(ri, msg); /* If a relation was eliminated, then continue sorting. */ /* XXX TODO: add control bit. */ @@ -2725,7 +2728,7 @@ pi = rpmtsiInit(ts); while ((p = rpmtsiNext(pi, 0)) != NULL) rpmteFreeTSI(p); - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); /* * The order ends up as installed packages followed by removed packages. @@ -2739,7 +2742,7 @@ orderList[j].orIndex = rpmtsiOc(pi); j++; } - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); qsort(orderList, numOrderList, sizeof(*orderList), orderListIndexCmp); @@ -2786,6 +2789,7 @@ int rpmtsCheck(rpmts ts) { + static const char msg[] = "rpmtsCheck"; const char * depName = NULL; rpmdepFlags depFlags = rpmtsDFlags(ts); rpmuint32_t tscolor = rpmtsColor(ts); @@ -2881,7 +2885,7 @@ if (rc && (ourrc = rc) >= terminate) break; } - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); if (rc && (ourrc = rc) >= terminate) goto exit; @@ -2924,7 +2928,7 @@ if (rc && (ourrc = rc) >= terminate) break; } - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); if (rc && (ourrc = rc) >= terminate) goto exit; @@ -2946,7 +2950,7 @@ exit: mi = rpmdbFreeIterator(mi); - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); depName = _free(depName); (void) rpmswExit(rpmtsOp(ts, RPMTS_OP_CHECK), 0); @@ . patch -p0 <<'@@ .' Index: rpm/lib/librpm.vers ============================================================================ $ cvs diff -u -r1.61 -r1.62 librpm.vers --- rpm/lib/librpm.vers 19 Mar 2009 18:22:03 -0000 1.61 +++ rpm/lib/librpm.vers 21 Mar 2009 17:32:45 -0000 1.62 @@ -234,7 +234,6 @@ rpmpsFreeIterator; rpmpsInitIterator; rpmpsNextIterator; - rpmpsmFree; rpmpsmNew; rpmpsmStage; rpmpsNumProblems; @@ -404,7 +403,6 @@ showVerifyPackage; specedit; strict_erasures; - XrpmtsiFree; XrpmtsiInit; local: *; @@ . patch -p0 <<'@@ .' Index: rpm/lib/psm.c ============================================================================ $ cvs diff -u -r2.348 -r2.349 psm.c --- rpm/lib/psm.c 20 Mar 2009 18:28:33 -0000 2.348 +++ rpm/lib/psm.c 21 Mar 2009 17:32:45 -0000 2.349 @@ -61,22 +61,6 @@ /*...@access rpmluav @*/ -/*...@unchecked@*/ /*...@null@*/ -rpmioPool _psmPool; - -static rpmpsm rpmpsmGetPool(/*...@null@*/ rpmioPool pool) - /*...@modifies pool @*/ -{ - rpmpsm psm; - - if (_psmPool == NULL) { - _psmPool = rpmioNewPool("psm", sizeof(*psm), -1, _psm_debug, - NULL, NULL, NULL); - pool = _psmPool; - } - return (rpmpsm) rpmioGetPool(pool, sizeof(*psm)); -} - /** * Mark files in database shared with this package as "replaced". * @param psm package state machine data @@ -1551,45 +1535,44 @@ /*...@noteached@*/ } -rpmpsm rpmpsmFree(rpmpsm psm) +static void rpmpsmFini(void * _psm) + /*...@modifies _psm @*/ { - static const char msg[] = "rpmpsmFree"; - - if (psm == NULL) - return NULL; - - yarnPossess(psm->_item.use); - -/*...@-modfilesys@*/ -if (_psm_debug) -fprintf(stderr, "--> psm %p -- %ld %s at %s:%u\n", psm, yarnPeekLock(psm->_item.use), msg, __FILE__, __LINE__); -/*...@=modfilesys@*/ - - if (yarnPeekLock(psm->_item.use) <= 1L) { + rpmpsm psm = _psm; /*...@-nullstate@*/ - psm->fi = rpmfiFree(psm->fi); + psm->fi = rpmfiFree(psm->fi); #ifdef NOTYET - psm->te = rpmteFree(psm->te); + psm->te = rpmteFree(psm->te); #else - psm->te = NULL; + psm->te = NULL; #endif /*...@-internalglobs@*/ - psm->ts = rpmtsFree(psm->ts); + psm->ts = rpmtsFree(psm->ts); /*...@=internalglobs@*/ - psm->sstates = _free(psm->sstates); - psm->IPhe->p.ptr = _free(psm->IPhe->p.ptr); - psm->IPhe = _free(psm->IPhe); - psm->NVRA = _free(psm->NVRA); - psm->triggers = rpmdsFree(psm->triggers); + psm->sstates = _free(psm->sstates); + psm->IPhe->p.ptr = _free(psm->IPhe->p.ptr); + psm->IPhe = _free(psm->IPhe); + psm->NVRA = _free(psm->NVRA); + psm->triggers = rpmdsFree(psm->triggers); +/*...@=nullstate@*/ +} - psm = (rpmpsm) rpmioPutPool((rpmioItem)psm); - } else - yarnTwist(psm->_item.use, BY, -1); +/*...@unchecked@*/ /*...@null@*/ +rpmioPool _psmPool; - return NULL; -/*...@=nullstate@*/ +static rpmpsm rpmpsmGetPool(/*...@null@*/ rpmioPool pool) + /*...@modifies pool @*/ +{ + rpmpsm psm; + + if (_psmPool == NULL) { + _psmPool = rpmioNewPool("psm", sizeof(*psm), -1, _psm_debug, + NULL, NULL, rpmpsmFini); + pool = _psmPool; + } + return (rpmpsm) rpmioGetPool(pool, sizeof(*psm)); } rpmpsm rpmpsmNew(rpmts ts, rpmte te, rpmfi fi) @@ . patch -p0 <<'@@ .' Index: rpm/lib/psm.h ============================================================================ $ cvs diff -u -r2.70 -r2.71 psm.h --- rpm/lib/psm.h 20 Mar 2009 18:28:33 -0000 2.70 +++ rpm/lib/psm.h 21 Mar 2009 17:32:45 -0000 2.71 @@ -207,9 +207,12 @@ * @return NULL always */ /*...@null@*/ -rpmpsm rpmpsmFree(/*...@killref@*/ /*...@only@*/ /*...@null@*/ rpmpsm psm) +rpmpsm rpmpsmFree(/*...@killref@*/ /*...@only@*/ /*...@null@*/ rpmpsm psm, + /*...@null@*/ const char * msg) /*...@globals fileSystem @*/ /*...@modifies psm, fileSystem @*/; +#define rpmpsmFree(_psm, _msg) \ + ((rpmpsm)rpmioFreePoolItem((rpmioItem)(_psm), _msg, __FILE__, __LINE__)) /** * Create and load a package state machine. @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmgi.c ============================================================================ $ cvs diff -u -r2.59 -r2.60 rpmgi.c --- rpm/lib/rpmgi.c 20 Mar 2009 18:28:33 -0000 2.59 +++ rpm/lib/rpmgi.c 21 Mar 2009 17:32:45 -0000 2.60 @@ -470,6 +470,7 @@ rpmgi rpmgiFree(rpmgi gi) { + static const char msg[] = "rpmgiFree"; int xx; if (gi == NULL) return NULL; @@ -492,7 +493,7 @@ xx = Fclose(gi->fd); gi->fd = NULL; } - gi->tsi = rpmtsiFree(gi->tsi); + gi->tsi = rpmtsiFree(gi->tsi, msg); gi->mi = rpmdbFreeIterator(gi->mi); gi->ts = rpmtsFree(gi->ts); @@ -544,6 +545,7 @@ rpmRC rpmgiNext(/*...@null@*/ rpmgi gi) { + static const char msg[] = "rpmgiNext"; char hnum[32]; rpmRC rpmrc = RPMRC_NOTFOUND; int xx; @@ -644,7 +646,7 @@ } } if (rpmrc != RPMRC_OK) { - gi->tsi = rpmtsiFree(gi->tsi); + gi->tsi = rpmtsiFree(gi->tsi, msg); goto enditer; } } break; @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmte.c ============================================================================ $ cvs diff -u -r2.94 -r2.95 rpmte.c --- rpm/lib/rpmte.c 20 Mar 2009 18:28:33 -0000 2.94 +++ rpm/lib/rpmte.c 21 Mar 2009 17:32:45 -0000 2.95 @@ -42,23 +42,6 @@ return (rpmte) rpmioGetPool(pool, sizeof(*te)); } - -/*...@unchecked@*/ /*...@null@*/ -rpmioPool _rpmtsiPool; - -static rpmtsi rpmtsiGetPool(/*...@null@*/ rpmioPool pool) - /*...@modifies pool @*/ -{ - rpmtsi tsi; - - if (_rpmtsiPool == NULL) { - _rpmtsiPool = rpmioNewPool("tsi", sizeof(*tsi), -1, _rpmte_debug, - NULL, NULL, NULL);/* XXX _rpmtsi_debug? */ - pool = _rpmtsiPool; - } - return (rpmtsi) rpmioGetPool(pool, sizeof(*tsi)); -} - void rpmteCleanDS(rpmte te) { te->PRCO = rpmdsFreePRCO(te->PRCO); @@ -732,24 +715,29 @@ return tsi->ocsave; } -rpmtsi XrpmtsiFree(/*...@only@*//*...@null@*/ rpmtsi tsi, - const char * fn, unsigned int ln) +static void rpmtsiFini(void * _tsi) + /*...@modifies *_tsi @*/ { - if (tsi == NULL) return NULL; - yarnPossess(tsi->_item.use); -/*...@-modfilesys@*/ -if (_rpmte_debug) -fprintf(stderr, "*** tsi %p -- %ld %s at %s:%d\n", tsi, yarnPeekLock(tsi->_item.use), "rpmtsiFree", fn, ln); -/*...@=modfilesys@*/ - if (yarnPeekLock(tsi->_item.use) <= 1L) { + rpmtsi tsi = _tsi; /*...@-internalglobs@*/ - tsi->ts = rpmtsFree(tsi->ts); + tsi->ts = rpmtsFree(tsi->ts); /*...@=internalglobs@*/ - tsi = (rpmtsi) rpmioPutPool((rpmioItem)tsi); - } else - yarnTwist(tsi->_item.use, BY, -1); +} - return NULL; +/*...@unchecked@*/ /*...@null@*/ +rpmioPool _rpmtsiPool; + +static rpmtsi rpmtsiGetPool(/*...@null@*/ rpmioPool pool) + /*...@modifies pool @*/ +{ + rpmtsi tsi; + + if (_rpmtsiPool == NULL) { + _rpmtsiPool = rpmioNewPool("tsi", sizeof(*tsi), -1, _rpmte_debug, + NULL, NULL, rpmtsiFini);/* XXX _rpmtsi_debug? */ + pool = _rpmtsiPool; + } + return (rpmtsi) rpmioGetPool(pool, sizeof(*tsi)); } rpmtsi XrpmtsiInit(rpmts ts, const char * fn, unsigned int ln) @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmte.h ============================================================================ $ cvs diff -u -r2.60 -r2.61 rpmte.h --- rpm/lib/rpmte.h 20 Mar 2009 18:28:34 -0000 2.60 +++ rpm/lib/rpmte.h 21 Mar 2009 17:32:45 -0000 2.61 @@ -677,23 +677,12 @@ * @return NULL always */ /*...@unused@*/ /*...@null@*/ -rpmtsi rpmtsiFree(/*...@only@*//*...@null@*/ rpmtsi tsi) +rpmtsi rpmtsiFree(/*...@killref@*//*...@null@*/ rpmtsi tsi, + /*...@null@*/ const char * msg) /*...@globals fileSystem @*/ /*...@modifies fileSystem @*/; - -/** \ingroup rpmte - * Destroy transaction element iterator. - * @param tsi transaction element iterator - * @param fn - * @param ln - * @return NULL always - */ -/*...@null@*/ -rpmtsi XrpmtsiFree(/*...@only@*//*...@null@*/ rpmtsi tsi, - const char * fn, unsigned int ln) - /*...@globals fileSystem @*/ - /*...@modifies fileSystem @*/; -#define rpmtsiFree(_tsi) XrpmtsiFree(_tsi, __FILE__, __LINE__) +#define rpmtsiFree(_tsi, _msg) \ + ((rpmtsi)rpmioFreePoolItem((rpmioItem)(_tsi), _msg, __FILE__, __LINE__)) /** \ingroup rpmte * Create transaction element iterator. @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmts.c ============================================================================ $ cvs diff -u -r2.161 -r2.162 rpmts.c --- rpm/lib/rpmts.c 20 Mar 2009 18:28:34 -0000 2.161 +++ rpm/lib/rpmts.c 21 Mar 2009 17:32:45 -0000 2.162 @@ -517,17 +517,19 @@ rpmps rpmtsProblems(rpmts ts) { + static const char msg[] = "rpmtsProblems"; rpmps ps = NULL; if (ts) { if (ts->probs == NULL) ts->probs = rpmpsCreate(); - ps = rpmpsLink(ts->probs, "rpmtsProblems"); + ps = rpmpsLink(ts->probs, msg); } return ps; } void rpmtsClean(rpmts ts) { + static const char msg[] = "rpmtsClean"; rpmtsi pi; rpmte p; if (ts == NULL) @@ -537,7 +539,7 @@ pi = rpmtsiInit(ts); while ((p = rpmtsiNext(pi, 0)) != NULL) rpmteCleanDS(p); - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); ts->addedPackages = rpmalFree(ts->addedPackages); ts->numAddedPackages = 0; @@ -555,6 +557,7 @@ void rpmtsEmpty(rpmts ts) { + static const char msg[] = "rpmtsEmpty"; rpmtsi pi; rpmte p; int oc; @@ -570,7 +573,7 @@ ts->order[oc] = rpmteFree(ts->order[oc]); /*...@=type =unqualifiedtrans @*/ } - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); ts->orderCount = 0; ts->ntrees = 0; @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmts.h ============================================================================ $ cvs diff -u -r2.111 -r2.112 rpmts.h --- rpm/lib/rpmts.h 20 Mar 2009 18:28:34 -0000 2.111 +++ rpm/lib/rpmts.h 21 Mar 2009 17:32:45 -0000 2.112 @@ -1109,7 +1109,7 @@ while ((te = rpmtsiNext(tsi, 0)) != NULL) fprintf(fp, "t%s> %s\n", (rpmteType(te) == TR_ADDED ? "I" : "E"), rpmteNEVRA(te)); - tsi = rpmtsiFree(tsi); + tsi = rpmtsiFree(tsi, "rpmtsPrint"); return 0; } #endif /* defined(_RPMTS_PRINT) */ @@ . patch -p0 <<'@@ .' Index: rpm/lib/transaction.c ============================================================================ $ cvs diff -u -r1.394 -r1.395 transaction.c --- rpm/lib/transaction.c 3 Mar 2009 21:29:28 -0000 1.394 +++ rpm/lib/transaction.c 21 Mar 2009 17:32:45 -0000 1.395 @@ -948,7 +948,7 @@ assert(psm != NULL); psm->stepName = "failed"; /* XXX W2DO? */ rc = rpmpsmStage(psm, PSM_RPMDB_ADD); - psm = rpmpsmFree(psm); + psm = rpmpsmFree(psm, "_processFailedPackage"); } return rc; } @@ -959,6 +959,7 @@ /*...@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/ /*...@modifies rbts, rpmGlobalMacroContext, fileSystem, internalState @*/ { + static const char msg[] = "rpmtsRollback"; const char * semfn = NULL; rpmRC rc = 0; rpmuint32_t arbgoal = rpmtsARBGoal(rbts); @@ -1003,7 +1004,7 @@ break; } } - tsi = rpmtsiFree(tsi); + tsi = rpmtsiFree(tsi, msg); if (rc != RPMRC_OK) goto cleanup; } @@ -1106,6 +1107,7 @@ /*...@globals fileSystem @*/ /*...@modifies ts, p, fileSystem @*/ { + static const char msg[] = "markLinkedFailed"; rpmtsi qi; rpmte q; int bingo; @@ -1132,13 +1134,14 @@ q->linkFailed = p->linkFailed; } - qi = rpmtsiFree(qi); + qi = rpmtsiFree(qi, msg); return 0; } int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet) { + static const char msg[] = "rpmtsRun"; rpmuint32_t tscolor = rpmtsColor(ts); int i, j; int ourrc = 0; @@ -1219,7 +1222,7 @@ dbmode = (O_RDWR|O_CREAT); break; } - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); } /* Open database RDWR for installing packages. */ @@ -1308,7 +1311,7 @@ totalFileCount += fc; } - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); ps = rpmpsFree(ps); /* The ordering doesn't matter here */ @@ -1323,7 +1326,7 @@ totalFileCount += fc; } - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); /* Run pre-transaction scripts, but only if there are no known @@ -1381,7 +1384,7 @@ psm->scriptTag = RPMTAG_PRETRANS; psm->progTag = RPMTAG_PRETRANSPROG; xx = rpmpsmStage(psm, PSM_SCRIPT); - psm = rpmpsmFree(psm); + psm = rpmpsmFree(psm, msg); /*...@-compdef -usereleased @*/ p->fd = rpmtsNotify(ts, p, RPMCALLBACK_INST_CLOSE_FILE, 0, 0); @@ -1390,7 +1393,7 @@ p->h = headerFree(p->h); } } - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); } /* =============================================== @@ -1430,7 +1433,7 @@ fi->fps = (fc > 0 ? xmalloc(fc * sizeof(*fi->fps)) : NULL); } - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); if (!rpmtsChrootDone(ts)) { const char * rootDir = rpmtsRootDir(ts); @@ -1481,7 +1484,7 @@ (void) rpmswExit(rpmtsOp(ts, RPMTS_OP_FINGERPRINT), fc); } - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); ptr = rpmtsNotify(ts, NULL, RPMCALLBACK_TRANS_START, 6, ts->orderCount); @@ -1564,7 +1567,7 @@ if (rpmteDBOffset(q) == ro) knownBad = ro; } - qi = rpmtsiFree(qi); + qi = rpmtsiFree(qi, msg); shared->pkgFileNum = i; shared->otherPkg = dbiIndexRecordOffset(matches[i], j); @@ -1636,7 +1639,7 @@ (void) rpmswExit(rpmtsOp(ts, RPMTS_OP_FINGERPRINT), fc); } /*...@=nullpass@*/ - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); ps = rpmpsFree(ps); if (rpmtsChrootDone(ts)) { @@ -1665,7 +1668,7 @@ continue; fi->fps = _free(fi->fps); } - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); fpc = fpCacheFree(fpc); ts->ht = htFree(ts->ht); @@ -1719,7 +1722,7 @@ psm = rpmpsmNew(ts, p, fi); assert(psm != NULL); xx = rpmpsmStage(psm, PSM_PKGSAVE); - psm = rpmpsmFree(psm); + psm = rpmpsmFree(psm, msg); fi->mapflags &= ~IOSM_MAP_ABSOLUTE; fi->mapflags &= ~IOSM_MAP_ADDDOT; fi->mapflags &= ~IOSM_ALL_HARDLINKS; @@ -1729,7 +1732,7 @@ /*...@switchbreak@*/ break; } } - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); if (progress) ptr = rpmtsNotify(ts, NULL, RPMCALLBACK_REPACKAGE_STOP, 7, numRemoved); @@ -1896,7 +1899,7 @@ xx = rpmdbSync(rpmtsGetRdb(ts)); /*...@-nullstate@*/ /* FIX: psm->fi may be NULL */ - psm = rpmpsmFree(psm); + psm = rpmpsmFree(psm, msg); /*...@=nullstate@*/ /* If we received an error, lets break out and rollback, provided @@ -1908,7 +1911,7 @@ } } /*...@=nullpass@*/ - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); if (!(rpmtsFlags(ts) & RPMTRANS_FLAG_NOPOSTTRANS) && !(rpmtsFlags(ts) & RPMTRANS_FLAG_TEST)) @@ -1971,7 +1974,7 @@ psm->scriptTag = RPMTAG_POSTTRANS; psm->progTag = RPMTAG_POSTTRANSPROG; xx = rpmpsmStage(psm, PSM_SCRIPT); - psm = rpmpsmFree(psm); + psm = rpmpsmFree(psm, msg); /*...@-compdef -usereleased @*/ p->fd = rpmtsNotify(ts, p, RPMCALLBACK_INST_CLOSE_FILE, 0, 0); @@ -1982,7 +1985,7 @@ } /*...@=nullpass@*/ } - pi = rpmtsiFree(pi); + pi = rpmtsiFree(pi, msg); } if (!(rpmtsFlags(ts) & RPMTRANS_FLAG_NOCONTEXTS)) @@ . patch -p0 <<'@@ .' Index: rpm/lib/verify.c ============================================================================ $ cvs diff -u -r2.194 -r2.195 verify.c --- rpm/lib/verify.c 2 Aug 2008 00:38:05 -0000 2.194 +++ rpm/lib/verify.c 21 Mar 2009 17:32:45 -0000 2.195 @@ -269,7 +269,7 @@ if (scriptFd != NULL) rpmtsSetScriptFd(psm->ts, NULL); - psm = rpmpsmFree(psm); + psm = rpmpsmFree(psm, "rpmVerifyScript"); return rc; } @@ . patch -p0 <<'@@ .' Index: rpm/python/rpmts-py.c ============================================================================ $ cvs diff -u -r1.96 -r1.97 rpmts-py.c --- rpm/python/rpmts-py.c 21 Mar 2009 15:25:12 -0000 1.96 +++ rpm/python/rpmts-py.c 21 Mar 2009 17:32:46 -0000 1.97 @@ -350,6 +350,7 @@ rpmts_iternext(rpmtsObject * s) /*...@modifies s @*/ { + static const char msg[] = "rpmts_iternext"; PyObject * result = NULL; rpmte te; @@ -369,7 +370,7 @@ if (te != NULL) { result = (PyObject *) rpmte_Wrap(te); } else { - s->tsi = rpmtsiFree(s->tsi); + s->tsi = rpmtsiFree(s->tsi, msg); s->tsiFilter = 0; } /*...@=branchstate@*/ @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/pkgio.c ============================================================================ $ cvs diff -u -r1.92 -r1.93 pkgio.c --- rpm/rpmdb/pkgio.c 21 Mar 2009 15:25:12 -0000 1.92 +++ rpm/rpmdb/pkgio.c 21 Mar 2009 17:32:46 -0000 1.93 @@ -366,7 +366,8 @@ opx = RPMTS_OP_SIGNATURE; (void) rpmswAdd(rpmtsOp(ts, opx), pgpStatsAccumulator(ts->dig, opx)); /*...@-onlytrans@*/ - ts->dig = pgpDigFree(ts->dig, "rpmtsCleanDig"); + (void) pgpDigFree(ts->dig, "rpmtsCleanDig"); + ts->dig = NULL; /* XXX make sure the ptr is __REALLY__ gone */ /*...@=onlytrans@*/ } } @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/poptIO.c ============================================================================ $ cvs diff -u -r1.32 -r1.33 poptIO.c --- rpm/rpmio/poptIO.c 6 Mar 2009 17:40:57 -0000 1.32 +++ rpm/rpmio/poptIO.c 21 Mar 2009 17:32:47 -0000 1.33 @@ -58,6 +58,8 @@ /*...@unchecked@*/ extern int noLibio; /*...@unchecked@*/ +extern int _pgp_debug; +/*...@unchecked@*/ extern int _rpmio_debug; /*...@unchecked@*/ extern int _rpmsq_debug; @@ -391,6 +393,8 @@ N_("Debug I/O state machine"), NULL}, { "miredebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_mire_debug, -1, N_("Debug miRE patterns"), NULL}, + { "pgpdebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_pgp_debug, -1, + N_("Debug PGP usage"), NULL}, { "rpmiodebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_rpmio_debug, -1, N_("Debug rpmio I/O"), NULL}, { "rpmmgdebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_rpmmg_debug, -1, @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org