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

Reply via email to