RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: rpm/ CHANGES rpm/rpmdb/ rpmwf.c rpmwf.h rpm/rpmio/ rpmxar.c...

From: Jeff Johnson <jbj@rpm5.org>
Date: Fri 23 Nov 2007 - 19:29:02 CET
Message-Id: <20071123182902.7160D348455@rpm5.org>
  RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Jeff Johnson
  Root:   /v/rpm/cvs                       Email:  jbj@rpm5.org
  Module: rpm                              Date:   23-Nov-2007 19:29:02
  Branch: HEAD                             Handle: 2007112318290101

  Modified files:
    rpm                     CHANGES
    rpm/rpmdb               rpmwf.c rpmwf.h
    rpm/rpmio               rpmxar.c rpmxar.h

  Log:
    - rescusitate txar, pass private buffer through rpmxarPush.

  Summary:
    Revision    Changes     Path
    1.1876      +1  -0      rpm/CHANGES
    1.19        +34 -25     rpm/rpmdb/rpmwf.c
    1.9         +2  -2      rpm/rpmdb/rpmwf.h
    2.8         +16 -5      rpm/rpmio/rpmxar.c
    2.6         +1  -1      rpm/rpmio/rpmxar.h
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.1875 -r1.1876 CHANGES
  --- rpm/CHANGES	23 Nov 2007 16:55:42 -0000	1.1875
  +++ rpm/CHANGES	23 Nov 2007 18:29:01 -0000	1.1876
  @@ -1,4 +1,5 @@
   5.0a2 -> 5.0a3:
  +    - jbj: rescusitate txar, pass private buffer through rpmxarPush.
       - jbj: re-add rpm2cpio.c.
       - jbj: spiffy error msgs for the XAR challenged users.
       - jbj: splint fiddles for rpmxar and rpmTag.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/rpmwf.c
  ============================================================================
  $ cvs diff -u -r1.18 -r1.19 rpmwf.c
  --- rpm/rpmdb/rpmwf.c	23 Nov 2007 16:35:43 -0000	1.18
  +++ rpm/rpmdb/rpmwf.c	23 Nov 2007 18:29:01 -0000	1.19
  @@ -39,8 +39,10 @@
   	nb = wf->np;
       }
   
  -    xx = rpmxarSwapBuf(wf->xar, b, nb, NULL, NULL);
  -    xx = rpmxarPush(wf->xar, fn);
  +if (_rpmwf_debug)
  +fprintf(stderr, "==> rpmwfPushXAR(%p, %s) %p[%u]\n", wf, fn, b, (unsigned) nb);
  +
  +    xx = rpmxarPush(wf->xar, fn, b, nb);
       return (xx == 0 ? RPMRC_OK : RPMRC_FAIL);
   }
   
  @@ -56,6 +58,9 @@
   	return RPMRC_NOTFOUND;
       xx = rpmxarSwapBuf(wf->xar, NULL, 0, &b, &nb);
   
  +if (_rpmwf_debug)
  +fprintf(stderr, "==> rpmwfPullXAR(%p, %s) %p[%u]\n", wf, fn, b, (unsigned) nb);
  +
       if (!strcmp(fn, "Lead")) {
   	wf->l = b;
   	wf->nl = nb;
  @@ -77,10 +82,13 @@
       return rc;
   }
   
  -rpmRC rpmwfFiniRPM(rpmwf wf)
  +rpmRC rpmwfFini(rpmwf wf)
   {
       int xx;
   
  +if (_rpmwf_debug)
  +fprintf(stderr, "==> rpmwfFini(%p)\n", wf);
  +
       if (wf->b && wf->b != (void *)-1) {
   	xx = munmap(wf->b, wf->nb);
   	wf->b = NULL;
  @@ -98,10 +106,10 @@
       return (8 + 8 + 16 * ntohl(p[2]) + ntohl(p[3]));
   }
   
  -rpmRC rpmwfInitRPM(rpmwf wf, const char * fn, const char * fmode)
  +rpmRC rpmwfInit(rpmwf wf, const char * fn, const char * fmode)
   {
   if (_rpmwf_debug)
  -fprintf(stderr, "*** rpmwfInitRPM(%p, %s, %s)\n", wf, fn, fmode);
  +fprintf(stderr, "==> rpmwfInit(%p, %s, %s)\n", wf, fn, fmode);
       if (fn == NULL)
   	fn = wf->fn;
   assert(fn != NULL);
  @@ -109,10 +117,8 @@
   /*@-globs@*/
       wf->fd = Fopen(fn, fmode);
   /*@=globs@*/
  -if (_rpmwf_debug)
  -fprintf(stderr, "*** Fopen(%s, %s) fd %p nb %u\n", fn, fmode, wf->fd, (unsigned)wf->nb);
       if (wf->fd == NULL || Ferror(wf->fd)) {
  -	(void) rpmwfFiniRPM(wf);
  +	(void) rpmwfFini(wf);
   	return RPMRC_NOTFOUND;
       }
   
  @@ -121,7 +127,7 @@
   
   	if (wf->b == (void *)-1) {
   	    wf->b = NULL;
  -	    (void) rpmwfFiniRPM(wf);
  +	    (void) rpmwfFini(wf);
   	    return RPMRC_NOTFOUND;
   	}
   
  @@ -168,7 +174,10 @@
       if (!(b && nb > 0))
   	return RPMRC_NOTFOUND;
   
  -    if (Fwrite(b, 1, nb, wf->fd) != nb)
  +if (_rpmwf_debug)
  +fprintf(stderr, "==> rpmwfPushRPM(%p, %s) %p[%u]\n", wf, fn, b, (unsigned) nb);
  +
  +    if (Fwrite(b, sizeof(b[0]), nb, wf->fd) != nb)
   	return RPMRC_FAIL;
   
       return RPMRC_OK;
  @@ -179,7 +188,7 @@
       if (wf == NULL) return NULL;
   /*@-modfilesys@*/
   if (_rpmwf_debug && msg != NULL)
  -fprintf(stderr, "--> wf %p -- %d %s at %s:%u\n", wf, wf->nrefs, msg, fn, ln);
  +fprintf(stderr, "-->  wf %p -- %d %s at %s:%u\n", wf, wf->nrefs, msg, fn, ln);
   /*@=modfilesys@*/
       wf->nrefs--;
       return NULL;
  @@ -192,7 +201,7 @@
   
   /*@-modfilesys@*/
   if (_rpmwf_debug && msg != NULL)
  -fprintf(stderr, "--> wf %p ++ %d %s at %s:%u\n", wf, wf->nrefs, msg, fn, ln);
  +fprintf(stderr, "-->  wf %p ++ %d %s at %s:%u\n", wf, wf->nrefs, msg, fn, ln);
   /*@=modfilesys@*/
   
       /*@-refcounttrans@*/ return wf; /*@=refcounttrans@*/
  @@ -216,7 +225,7 @@
   	}
   
   	wf->xar = rpmxarFree(wf->xar);
  -	(void) rpmwfFiniRPM(wf);
  +	(void) rpmwfFini(wf);
   
   	wf->fn = _free(wf->fn);
   
  @@ -244,9 +253,6 @@
       wf->fn = xstrdup(fn);
       wf->nb = st->st_size;
   
  -if (_rpmwf_debug)
  -fprintf(stderr, "*** rpmwfNew(%s) wf %p nb %u\n", wf->fn, wf, (unsigned)wf->nb);
  -
       return rpmwfLink(wf, "rpmwfNew");
   }
   
  @@ -258,13 +264,13 @@
       if ((wf = rpmwfNew(rpmfn)) == NULL)
   	return wf;
   
  -    if ((rc = rpmwfInitRPM(wf, NULL, "r")) != RPMRC_OK) {
  +    if ((rc = rpmwfInit(wf, NULL, "r")) != RPMRC_OK) {
   	wf = rpmwfFree(wf);
   	return NULL;
       }
   
   if (_rpmwf_debug)
  -fprintf(stderr, "*** rdRPM(%s) wf %p\n", rpmfn, wf);
  +fprintf(stderr, "==> rdRPM(%s) wf %p\n\tLead %p[%u]\n\tSignature %p[%u]\n\tHeader %p[%u]\n\tPayload %p[%u]\n", rpmfn, wf, wf->l, (unsigned)wf->nl, wf->s, (unsigned) wf->ns, wf->h, (unsigned) wf->nh, wf->p, (unsigned) wf->np);
   
       return wf;
   }
  @@ -282,13 +288,14 @@
   	wf = rpmwfFree(wf);
   	return NULL;
       }
  -if (_rpmwf_debug)
  -fprintf(stderr, "*** rdXAR(%s) wf %p xar %p\n", xarfn, wf, wf->xar);
   
       while (rpmxarNext(wf->xar) == 0)
   	rc = rpmwfPullXAR(wf, NULL);
  -
       wf->xar = rpmxarFree(wf->xar);
  +
  +if (_rpmwf_debug)
  +fprintf(stderr, "==> rdXAR(%s) wf %p\n\tLead %p[%u]\n\tSignature %p[%u]\n\tHeader %p[%u]\n\tPayload %p[%u]\n", xarfn, wf, wf->l, (unsigned)wf->nl, wf->s, (unsigned) wf->ns, wf->h, (unsigned) wf->nh, wf->p, (unsigned) wf->np);
  +
       return wf;
   }
   
  @@ -297,7 +304,8 @@
       rpmRC rc;
   
   if (_rpmwf_debug)
  -fprintf(stderr, "*** wrXAR(%s, %p)\n", xarfn, wf);
  +fprintf(stderr, "==> wrXAR(%s) wf %p\n\tLead %p[%u]\n\tSignature %p[%u]\n\tHeader %p[%u]\n\tPayload %p[%u]\n", xarfn, wf, wf->l, (unsigned)wf->nl, wf->s, (unsigned) wf->ns, wf->h, (unsigned) wf->nh, wf->p, (unsigned) wf->np);
  +
       wf->xar = rpmxarNew(xarfn, "w");
       if (wf->xar == NULL)
   	return RPMRC_FAIL;
  @@ -320,10 +328,11 @@
   {
       rpmRC rc;
   
  -    if ((rc = rpmwfInitRPM(wf, rpmfn, "w")) != RPMRC_OK)
  +    if ((rc = rpmwfInit(wf, rpmfn, "w")) != RPMRC_OK)
   	goto exit;
  +
   if (_rpmwf_debug)
  -fprintf(stderr, "*** wrRPM(%s, %p)\n", rpmfn, wf);
  +fprintf(stderr, "==> wrRPM(%s) wf %p\n\tLead %p[%u]\n\tSignature %p[%u]\n\tHeader %p[%u]\n\tPayload %p[%u]\n", rpmfn, wf, wf->l, (unsigned)wf->nl, wf->s, (unsigned) wf->ns, wf->h, (unsigned) wf->nh, wf->p, (unsigned) wf->np);
   
       if ((rc = rpmwfPushRPM(wf, "Lead")) != RPMRC_OK)
   	goto exit;
  @@ -335,7 +344,7 @@
   	goto exit;
   
   exit:
  -    (void) rpmwfFiniRPM(wf);
  +    (void) rpmwfFini(wf);
   
       return rc;
   }
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/rpmwf.h
  ============================================================================
  $ cvs diff -u -r1.8 -r1.9 rpmwf.h
  --- rpm/rpmdb/rpmwf.h	23 Nov 2007 07:06:01 -0000	1.8
  +++ rpm/rpmdb/rpmwf.h	23 Nov 2007 18:29:01 -0000	1.9
  @@ -55,11 +55,11 @@
   	/*@globals fileSystem @*/
   	/*@modifies wf, fileSystem @*/;
   
  -rpmRC rpmwfFiniRPM(rpmwf wf)
  +rpmRC rpmwfFini(rpmwf wf)
   	/*@globals fileSystem @*/
   	/*@modifies wf, fileSystem @*/;
   
  -rpmRC rpmwfInitRPM(rpmwf wf, const char * fn, const char * fmode)
  +rpmRC rpmwfInit(rpmwf wf, const char * fn, const char * fmode)
   	/*@globals fileSystem @*/
   	/*@modifies wf, fileSystem @*/;
   
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmxar.c
  ============================================================================
  $ cvs diff -u -r2.7 -r2.8 rpmxar.c
  --- rpm/rpmio/rpmxar.c	23 Nov 2007 16:37:24 -0000	2.7
  +++ rpm/rpmio/rpmxar.c	23 Nov 2007 18:29:02 -0000	2.8
  @@ -99,8 +99,10 @@
   
   int rpmxarNext(rpmxar xar)
   {
  +/*@-modfilesys@*/
   if (_xar_debug)
  -fprintf(stderr, "*** rpmxarNext(%p) first %d\n", xar, xar->first);
  +fprintf(stderr, "--> rpmxarNext(%p) first %d\n", xar, xar->first);
  +/*@=modfilesys@*/
   
   #if defined(WITH_XAR)
   /*@-moduncon@*/
  @@ -115,12 +117,17 @@
       return (xar->f == NULL ? 1 : 0);
   }
   
  -int rpmxarPush(rpmxar xar, const char * fn)
  +int rpmxarPush(rpmxar xar, const char * fn, char * b, size_t bsize)
   {
  -    if (xar->x && xar->b != NULL) {
  +/*@-modfilesys@*/
  +if (_xar_debug)
  +fprintf(stderr, "--> rpmxarPush(%p, %s) %p[%u]\n", xar, fn, b, (unsigned)bsize);
  +/*@=modfilesys@*/
  +
  +    if (xar->x && b != NULL) {
   #if defined(WITH_XAR)
   /*@-moduncon@*/
  -	xar->f = xar_add_frombuffer(xar->x, NULL, fn, xar->b, xar->bsize);
  +	xar->f = xar_add_frombuffer(xar->x, NULL, fn, b, bsize);
   /*@=moduncon@*/
   #endif
   	if (xar->f == NULL)
  @@ -156,8 +163,11 @@
   /*@=moduncon =nullstate @*/
   #endif	/* WITH_XAR */
   
  +/*@-modfilesys@*/
   if (_xar_debug)
  -fprintf(stderr, "*** %s %p[%lu] rc %d\n", xar->member, xar->b, (unsigned long)xar->bsize, rc);
  +fprintf(stderr, "--> rpmxarPull(%p, %s) %p[%u] rc %d\n", xar, fn, xar->b, (unsigned)xar->bsize, rc);
  +/*@=modfilesys@*/
  +
       if (rc)
   	return 1;
   
  @@ -171,6 +181,7 @@
   if (_xar_debug)
   fprintf(stderr, "*** rpmxarSwapBuf(%p, %p[%u], %p, %p) %p[%u]\n", xar, b, (unsigned) bsize, obp, obsizep, xar->b, (unsigned) xar->bsize);
   /*@=modfilesys@*/
  +
       if (xar) {
   	if (obsizep != NULL)
   	    *obsizep = xar->bsize;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmxar.h
  ============================================================================
  $ cvs diff -u -r2.5 -r2.6 rpmxar.h
  --- rpm/rpmio/rpmxar.h	23 Nov 2007 07:06:01 -0000	2.5
  +++ rpm/rpmio/rpmxar.h	23 Nov 2007 18:29:02 -0000	2.6
  @@ -89,7 +89,7 @@
   	/*@globals fileSystem @*/
   	/*@modifies xar, fileSystem @*/;
   
  -int rpmxarPush(rpmxar xar, const char * fn)
  +int rpmxarPush(rpmxar xar, const char * fn, char * b, size_t bsize)
   	/*@modifies xar @*/;
   
   int rpmxarPull(rpmxar xar, /*@null@*/ const char * fn)
  @@ .
Received on Fri Nov 23 19:29:02 2007
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.