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

Reply via email to