RPM Community Forums

Mailing List Message of <rpm-cvs>

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

From: Jeff Johnson <jbj@rpm5.org>
Date: Sat 24 Nov 2007 - 00:52:36 CET
Message-Id: <20071123235236.5409E348479@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:   24-Nov-2007 00:52:36
  Branch: HEAD                             Handle: 2007112323523501

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

  Log:
    - display 1st 8 bytes of content for XAR archive members.
    - remove newlines in pkgio messages.
    - fix: padding between signature <-> metadata headers wrong, grr.

  Summary:
    Revision    Changes     Path
    1.1879      +3  -0      rpm/CHANGES
    1.58        +32 -31     rpm/rpmdb/pkgio.c
    1.20        +20 -7      rpm/rpmdb/rpmwf.c
    2.11        +14 -12     rpm/rpmio/rpmxar.c
    2.9         +7  -7      rpm/rpmio/rpmxar.h
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.1878 -r1.1879 CHANGES
  --- rpm/CHANGES	23 Nov 2007 19:34:08 -0000	1.1878
  +++ rpm/CHANGES	23 Nov 2007 23:52:35 -0000	1.1879
  @@ -1,4 +1,7 @@
   5.0a2 -> 5.0a3:
  +    - jbj: display 1st 8 bytes of content for XAR archive members.
  +    - jbj: remove newlines in pkgio messages.
  +    - jbj: fix: padding between signature <-> metadata headers wrong, grr.
       - jbj: rpmxar.c: rearrange the messy markup and defines.
       - jbj: remove messy HAVE_XAR_H from installed rpmxar.h include.
       - jbj: retrofit 3 needed typedef's when compiling w/o HAVE_XAR_H.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/pkgio.c
  ============================================================================
  $ cvs diff -u -r1.57 -r1.58 pkgio.c
  --- rpm/rpmdb/pkgio.c	23 Nov 2007 16:35:43 -0000	1.57
  +++ rpm/rpmdb/pkgio.c	23 Nov 2007 23:52:35 -0000	1.58
  @@ -536,7 +536,7 @@
       l->signature_type = (unsigned short) ntohs(l->signature_type);
   
       if (memcmp(l->magic, lead_magic, sizeof(l->magic))) {
  -	(void) snprintf(buf, sizeof(buf), _("lead magic: BAD"));
  +	(void) snprintf(buf, sizeof(buf), _("lead magic: BAD, read %02x%02x%02x%02x"), l->magic[0], l->magic[1], l->magic[2], l->magic[3]);
   	rc = RPMRC_NOTFOUND;
   	goto exit;
       }
  @@ -696,7 +696,7 @@
       }
       if ((xx = (int) timedRead(fd, (void *)block, sizeof(block))) != (int) sizeof(block)) {
   	(void) snprintf(buf, sizeof(buf),
  -		_("sigh size(%d): BAD, read returned %d\n"), (int)sizeof(block), xx);
  +		_("sigh size(%d): BAD, read returned %d"), (int)sizeof(block), xx);
   	goto exit;
       }
   
  @@ -708,21 +708,21 @@
   	    hmagic = sigh_magic;
   
   	if (memcmp(block, hmagic, nmagic)) {
  -	    (void) snprintf(buf, sizeof(buf),
  -		_("sigh magic: BAD\n"));
  +	    unsigned char * x = (unsigned char *)block;
  +	    (void) snprintf(buf, sizeof(buf), _("sigh magic: BAD, read %02x%02x%02x%02x%02x%02x%02x%02x"), x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7]);
   	    goto exit;
   	}
       }
       il = (uint32_t) ntohl(block[2]);
       if (il > 32) {
   	(void) snprintf(buf, sizeof(buf),
  -		_("sigh tags: BAD, no. of tags(%u) out of range\n"), (unsigned) il);
  +		_("sigh tags: BAD, no. of tags(%u) out of range"), (unsigned) il);
   	goto exit;
       }
       dl = (uint32_t) ntohl(block[3]);
       if (dl > 8192) {
   	(void) snprintf(buf, sizeof(buf),
  -		_("sigh data: BAD, no. of bytes(%u) out of range\n"), (unsigned) dl);
  +		_("sigh data: BAD, no. of bytes(%u) out of range"), (unsigned) dl);
   	goto exit;
       }
   
  @@ -732,7 +732,7 @@
       ei = xmalloc(sizeof(il) + sizeof(dl) + nb);
       if ((xx = (int) timedRead(fd, (void *)&ei[2], nb)) != (int) nb) {
   	(void) snprintf(buf, sizeof(buf),
  -		_("sigh blob(%u): BAD, read returned %d\n"), (unsigned) nb, xx);
  +		_("sigh blob(%u): BAD, read returned %d"), (unsigned) nb, xx);
   	goto exit;
       }
       ei[0] = block[2];
  @@ -744,7 +744,7 @@
       xx = headerVerifyInfo(1, dl, pe, &entry->info, 0);
       if (xx != -1) {
   	(void) snprintf(buf, sizeof(buf),
  -		_("tag[%d]: BAD, tag %u type %u offset %d count %u\n"),
  +		_("tag[%d]: BAD, tag %u type %u offset %d count %u"),
   		0, (unsigned) entry->info.tag, (unsigned) entry->info.type,
   		(int)entry->info.offset, (unsigned) entry->info.count);
   	goto exit;
  @@ -761,7 +761,7 @@
   assert(entry->info.offset > 0);	/* XXX insurance */
   	if (entry->info.offset >= (int32_t)dl) {
   	    (void) snprintf(buf, sizeof(buf),
  -		_("region offset: BAD, tag %u type %u offset %d count %u\n"),
  +		_("region offset: BAD, tag %u type %u offset %d count %u"),
   		(unsigned) entry->info.tag, (unsigned) entry->info.type,
   		(int)entry->info.offset, (unsigned) entry->info.count);
   	    goto exit;
  @@ -786,7 +786,7 @@
   	   && entry->info.count == REGION_TAG_COUNT))
   	{
   	    (void) snprintf(buf, sizeof(buf),
  -		_("region trailer: BAD, tag %u type %u offset %d count %u\n"),
  +		_("region trailer: BAD, tag %u type %u offset %d count %u"),
   		(unsigned) entry->info.tag, (unsigned) entry->info.type,
   		(int)entry->info.offset, (unsigned) entry->info.count);
   	    goto exit;
  @@ -798,7 +798,7 @@
   	ril = (uint32_t) entry->info.offset/sizeof(*pe);
   	if ((entry->info.offset % sizeof(*pe)) || ril > il) {
   	    (void) snprintf(buf, sizeof(buf),
  -		_("region size: BAD, ril(%u) > il(%u)\n"), (unsigned) ril, (unsigned) il);
  +		_("region size: BAD, ril(%u) > il(%u)"), (unsigned) ril, (unsigned) il);
   	    goto exit;
   	}
       }
  @@ -809,7 +809,7 @@
   	xx = headerVerifyInfo(1, dl, pe+i, &entry->info, 0);
   	if (xx != -1) {
   	    (void) snprintf(buf, sizeof(buf),
  -		_("sigh tag[%u]: BAD, tag %u type %u offset %d count %u\n"),
  +		_("sigh tag[%u]: BAD, tag %u type %u offset %d count %u"),
   		(unsigned) i, (unsigned) entry->info.tag, (unsigned) entry->info.type,
   		(int)entry->info.offset, (unsigned) entry->info.count);
   	    goto exit;
  @@ -819,7 +819,7 @@
       /* OK, blob looks sane, load the header. */
       sigh = headerLoad(ei);
       if (sigh == NULL) {
  -	(void) snprintf(buf, sizeof(buf), _("sigh load: BAD\n"));
  +	(void) snprintf(buf, sizeof(buf), _("sigh load: BAD"));
   	goto exit;
       }
       sigh->flags |= HEADERFLAG_ALLOCATED;
  @@ -834,7 +834,7 @@
   	if (pad && (xx = (int) timedRead(fd, (void *)block, pad)) != (int) pad)
   	{
   	    (void) snprintf(buf, sizeof(buf),
  -		_("sigh pad(%u): BAD, read %d bytes\n"), (unsigned) pad, xx);
  +		_("sigh pad(%u): BAD, read %d bytes"), (unsigned) pad, xx);
   	    goto exit;
   	}
   
  @@ -847,7 +847,7 @@
   	    rc = printSize(fd, sigSize, pad, datasize);
   	    if (rc != RPMRC_OK)
   		(void) snprintf(buf, sizeof(buf),
  -			_("sigh sigSize(%u): BAD, fstat(2) failed\n"), (unsigned) sigSize);
  +			_("sigh sigSize(%u): BAD, fstat(2) failed"), (unsigned) sigSize);
   	}
   	he->p.ptr = _free(he->p.ptr);
       }
  @@ -912,7 +912,7 @@
       /* Is the blob the right size? */
       if (uc > 0 && pvlen != uc) {
   	(void) snprintf(buf, sizeof(buf),
  -		_("blob size(%d): BAD, 8 + 16 * il(%u) + dl(%u)\n"),
  +		_("blob size(%d): BAD, 8 + 16 * il(%u) + dl(%u)"),
   		(int)uc, (unsigned)il, (unsigned)dl);
   	goto exit;
       }
  @@ -921,7 +921,7 @@
       xx = headerVerifyInfo(1, dl, pe, &entry->info, 0);
       if (xx != -1) {
   	(void) snprintf(buf, sizeof(buf),
  -		_("tag[%d]: BAD, tag %u type %u offset %d count %u\n"),
  +		_("tag[%d]: BAD, tag %u type %u offset %d count %u"),
   		0, (unsigned) entry->info.tag, (unsigned) entry->info.type,
   		(int)entry->info.offset, (unsigned) entry->info.count);
   	goto exit;
  @@ -941,7 +941,7 @@
       /* Is the offset within the data area? */
       if (entry->info.offset >= (unsigned) dl) {
   	(void) snprintf(buf, sizeof(buf),
  -		_("region offset: BAD, tag %u type %u offset %d count %u\n"),
  +		_("region offset: BAD, tag %u type %u offset %d count %u"),
   		(unsigned) entry->info.tag, (unsigned) entry->info.type,
   		(int)entry->info.offset, (unsigned) entry->info.count);
   	goto exit;
  @@ -960,7 +960,7 @@
          && entry->info.count == REGION_TAG_COUNT))
       {
   	(void) snprintf(buf, sizeof(buf),
  -		_("region trailer: BAD, tag %u type %u offset %d count %u\n"),
  +		_("region trailer: BAD, tag %u type %u offset %d count %u"),
   		(unsigned) entry->info.tag, (unsigned) entry->info.type,
   		(int)entry->info.offset, (unsigned) entry->info.count);
   	goto exit;
  @@ -972,7 +972,7 @@
       ril = (uint32_t) entry->info.offset/sizeof(*pe);
       if ((entry->info.offset % sizeof(*pe)) || ril > il) {
   	(void) snprintf(buf, sizeof(buf),
  -		_("region size: BAD, ril(%u) > il(%u)\n"), (unsigned) ril, (unsigned)il);
  +		_("region size: BAD, ril(%u) > il(%u)"), (unsigned) ril, (unsigned)il);
   	goto exit;
       }
   
  @@ -981,7 +981,7 @@
   	xx = headerVerifyInfo(1, dl, pe+i, &entry->info, 0);
   	if (xx != -1) {
   	    (void) snprintf(buf, sizeof(buf),
  -		_("tag[%u]: BAD, tag %u type %u offset %d count %u\n"),
  +		_("tag[%u]: BAD, tag %u type %u offset %d count %u"),
   		(unsigned) i, (unsigned) entry->info.tag, (unsigned) entry->info.type,
   		(int)entry->info.offset, (unsigned) entry->info.count);
   	    goto exit;
  @@ -999,7 +999,7 @@
   	    }
   	    if (entry->info.type != RPM_STRING_TYPE || *b != '\0' || blen != 40)
   	    {
  -		(void) snprintf(buf, sizeof(buf), _("hdr SHA1: BAD, not hex\n"));
  +		(void) snprintf(buf, sizeof(buf), _("hdr SHA1: BAD, not hex"));
   		goto exit;
   	    }
   	    if (info->tag == 0) {
  @@ -1011,7 +1011,7 @@
   	    if (vsflags & RPMVSF_NORSAHEADER)
   		/*@switchbreak@*/ break;
   	    if (entry->info.type != RPM_BIN_TYPE) {
  -		(void) snprintf(buf, sizeof(buf), _("hdr RSA: BAD, not binary\n"));
  +		(void) snprintf(buf, sizeof(buf), _("hdr RSA: BAD, not binary"));
   		goto exit;
   	    }
   	    *info = entry->info;	/* structure assignment */
  @@ -1021,7 +1021,7 @@
   	    if (vsflags & RPMVSF_NODSAHEADER)
   		/*@switchbreak@*/ break;
   	    if (entry->info.type != RPM_BIN_TYPE) {
  -		(void) snprintf(buf, sizeof(buf), _("hdr DSA: BAD, not binary\n"));
  +		(void) snprintf(buf, sizeof(buf), _("hdr DSA: BAD, not binary"));
   		goto exit;
   	    }
   	    *info = entry->info;	/* structure assignment */
  @@ -1046,12 +1046,12 @@
   	xx = (ril > 0 ? headerVerifyInfo(ril-1, dl, pe+1, &entry->info, 0) : -1);
   	if (xx != -1) {
   	    (void) snprintf(buf, sizeof(buf),
  -		_("tag[%d]: BAD, tag %u type %u offset %d count %u\n"),
  +		_("tag[%d]: BAD, tag %u type %u offset %d count %u"),
   		xx+1, (unsigned) entry->info.tag, (unsigned) entry->info.type,
   		(int)entry->info.offset, (unsigned) entry->info.count);
   	    rc = RPMRC_FAIL;
   	} else {
  -	    (void) snprintf(buf, sizeof(buf), "Header sanity check: OK\n");
  +	    (void) snprintf(buf, sizeof(buf), "Header sanity check: OK");
   	    rc = RPMRC_OK;
   	}
   	buf[sizeof(buf)-1] = '\0';
  @@ -1263,7 +1263,7 @@
       }
       if ((xx = (int) timedRead(fd, (char *)block, sizeof(block))) != (int)sizeof(block)) {
   	(void) snprintf(buf, sizeof(buf),
  -		_("hdr size(%u): BAD, read returned %d\n"), (unsigned)sizeof(block), xx);
  +		_("hdr size(%u): BAD, read returned %d"), (unsigned)sizeof(block), xx);
   	goto exit;
       }
   
  @@ -1271,14 +1271,15 @@
       nb = 0;
       (void) headerGetMagic(NULL, &b, &nb);
       if (memcmp(block, b, nb)) {
  -	(void) snprintf(buf, sizeof(buf), _("hdr magic: BAD\n"));
  +	unsigned char * x = (unsigned char *) block;
  +	(void) snprintf(buf, sizeof(buf), _("hdr magic: BAD, read %02x%02x%02x%02x%02x%02x%02x%02x"), x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7]);
   	goto exit;
       }
   
       il = ntohl(block[2]);
       if (hdrchkTags(il)) {
   	(void) snprintf(buf, sizeof(buf),
  -		_("hdr tags: BAD, no. of tags(%u) out of range\n"), (unsigned) il);
  +		_("hdr tags: BAD, no. of tags(%u) out of range"), (unsigned) il);
   
   	goto exit;
       }
  @@ -1296,7 +1297,7 @@
       ei = (uint32_t *) xmalloc(uc);
       if ((xx = (int) timedRead(fd, (char *)&ei[2], nb)) != (int) nb) {
   	(void) snprintf(buf, sizeof(buf),
  -		_("hdr blob(%u): BAD, read returned %d\n"), (unsigned)nb, xx);
  +		_("hdr blob(%u): BAD, read returned %d"), (unsigned)nb, xx);
   	goto exit;
       }
       ei[0] = block[2];
  @@ -1380,7 +1381,7 @@
       else
       if (!strcmp(fn, "Signature")) {
   	len = szHeader(ptr);
  -	len += (8 - (len % 8));   /* padding */
  +	len += ((8 - (len % 8)) % 8);   /* padding */
       } else
       if (!strcmp(fn, "Header"))
   	len = szHeader(ptr);
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/rpmwf.c
  ============================================================================
  $ cvs diff -u -r1.19 -r1.20 rpmwf.c
  --- rpm/rpmdb/rpmwf.c	23 Nov 2007 18:29:01 -0000	1.19
  +++ rpm/rpmdb/rpmwf.c	23 Nov 2007 23:52:35 -0000	1.20
  @@ -136,7 +136,7 @@
   
   	wf->s = wf->l + wf->nl;
   	wf->ns = hSize((void *)wf->s);
  -	wf->ns += (8 - (wf->ns % 8));	/* padding */
  +	wf->ns += ((8 - (wf->ns % 8)) % 8);	/* padding */
   
   	wf->h = wf->s + wf->ns;
   	wf->nh = hSize((void *)wf->h);
  @@ -256,6 +256,22 @@
       return rpmwfLink(wf, "rpmwfNew");
   }
   
  +static void rpmwfDumpItem(const char * item, unsigned char * b, size_t bsize)
  +	/*@*/
  +{
  +    fprintf(stderr, "\t%s:\t%p[%u]\t%02x%02x%02x%02x%02x%02x%02x%02x\n", item, b, (unsigned)bsize, b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7]);
  +}
  +
  +static void rpmwfDump(rpmwf wf, const char * msg, const char * fn)
  +	/*@*/
  +{
  +    fprintf(stderr, "==> %s(%s) wf %p\n", msg, fn, wf);
  +    rpmwfDumpItem("     Lead", wf->l, wf->nl);
  +    rpmwfDumpItem("Signature", wf->s, wf->ns);
  +    rpmwfDumpItem("   Header", wf->h, wf->nh);
  +    rpmwfDumpItem("  Payload", wf->p, wf->np);
  +}
  +
   rpmwf rdRPM(const char * rpmfn)
   {
       rpmwf wf;
  @@ -269,8 +285,7 @@
   	return NULL;
       }
   
  -if (_rpmwf_debug)
  -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);
  +if (_rpmwf_debug) rpmwfDump(wf, "rdRPM", rpmfn);
   
       return wf;
   }
  @@ -293,8 +308,7 @@
   	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);
  +if (_rpmwf_debug) rpmwfDump(wf, "rdXAR", xarfn);
   
       return wf;
   }
  @@ -303,8 +317,7 @@
   {
       rpmRC rc;
   
  -if (_rpmwf_debug)
  -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);
  +if (_rpmwf_debug) rpmwfDump(wf, "wrXAR", xarfn);
   
       wf->xar = rpmxarNew(xarfn, "w");
       if (wf->xar == NULL)
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmxar.c
  ============================================================================
  $ cvs diff -u -r2.10 -r2.11 rpmxar.c
  --- rpm/rpmio/rpmxar.c	23 Nov 2007 19:34:08 -0000	2.10
  +++ rpm/rpmio/rpmxar.c	23 Nov 2007 23:52:36 -0000	2.11
  @@ -147,13 +147,13 @@
       return (xar->f == NULL ? 1 : 0);
   }
   
  -int rpmxarPush(rpmxar xar, const char * fn, char * b, size_t bsize)
  +int rpmxarPush(rpmxar xar, const char * fn, unsigned char * b, size_t bsize)
   {
   if (_xar_debug)
  -fprintf(stderr, "--> rpmxarPush(%p, %s) %p[%u]\n", xar, fn, b, (unsigned)bsize);
  +fprintf(stderr, "--> rpmxarPush(%p, %s) %p[%u] %02x%02x%02x%02x%02x%02x%02x%02x\n", xar, fn, b, (unsigned)bsize, b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7]);
   
       if (xar->x && b != NULL) {
  -	xar->f = xar_add_frombuffer(xar->x, NULL, fn, b, bsize);
  +	xar->f = xar_add_frombuffer(xar->x, NULL, fn, (char *)b, bsize);
   	if (xar->f == NULL)
   	    return 2;
       }
  @@ -176,23 +176,25 @@
       xar->bsize = xar->bx = 0;
   
   /*@-nullstate @*/
  -    rc = (int) xar_extract_tobuffersz(xar->x, xar->f, &xar->b, &xar->bsize);
  +    rc = (int) xar_extract_tobuffersz(xar->x, xar->f, (char **)&xar->b, &xar->bsize);
   /*@=nullstate @*/
  -
  -if (_xar_debug)
  -fprintf(stderr, "--> rpmxarPull(%p, %s) %p[%u] rc %d\n", xar, xar->member, xar->b, (unsigned)xar->bsize, rc);
  -
       if (rc)
   	return 1;
   
  +if (_xar_debug) {
  +unsigned char * b = xar->b;
  +size_t bsize = xar->bsize;
  +fprintf(stderr, "--> rpmxarPull(%p, %s) %p[%u] %02x%02x%02x%02x%02x%02x%02x%02x\n", xar, fn, b, (unsigned)bsize, b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7]);
  +}
  +
       return 0;
   }
   
  -int rpmxarSwapBuf(rpmxar xar, char * b, size_t bsize,
  -		char ** obp, size_t * obsizep)
  +int rpmxarSwapBuf(rpmxar xar, unsigned char * b, size_t bsize,
  +		unsigned char ** obp, size_t * obsizep)
   {
   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);
  +fprintf(stderr, "--> rpmxarSwapBuf(%p, %p[%u], %p, %p) %p[%u]\n", xar, b, (unsigned) bsize, obp, obsizep, xar->b, (unsigned) xar->bsize);
   
       if (xar) {
   	if (obsizep != NULL)
  @@ -240,7 +242,7 @@
   	rc = 0;
   
   if (_xar_debug)
  -fprintf(stderr, "*** xarRead(%p,%p,0x%x) %s %p[%u:%u] rc 0x%x\n", cookie, buf, (unsigned)count, (xar->member ? xar->member : "(nil)"), xar->b, (unsigned)xar->bx, (unsigned)xar->bsize, (unsigned)rc);
  +fprintf(stderr, "--> xarRead(%p,%p,0x%x) %s %p[%u:%u] rc 0x%x\n", cookie, buf, (unsigned)count, (xar->member ? xar->member : "(nil)"), xar->b, (unsigned)xar->bx, (unsigned)xar->bsize, (unsigned)rc);
   
       return rc;
   }
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmxar.h
  ============================================================================
  $ cvs diff -u -r2.8 -r2.9 rpmxar.h
  --- rpm/rpmio/rpmxar.h	23 Nov 2007 19:34:08 -0000	2.8
  +++ rpm/rpmio/rpmxar.h	23 Nov 2007 23:52:36 -0000	2.9
  @@ -14,15 +14,15 @@
   #ifdef	_RPMXAR_INTERNAL
   struct rpmxar_s {
   /*@relnull@*/
  -    void * x;			/*!< xar_t */
  +    const void * x;		/*!< xar_t */
   /*@relnull@*/
  -    void * f;			/*!< xar_file_t */
  +    const void * f;		/*!< xar_file_t */
   /*@relnull@*/
  -    void * i;			/*!< xar_iter_t */
  +    const void * i;		/*!< xar_iter_t */
   /*@null@*/
       const char * member;	/*!< Current archive member. */
   /*@null@*/
  -    char * b;			/*!< Data buffer. */
  +    unsigned char * b;		/*!< Data buffer. */
       size_t bsize;		/*!< No. bytes of data. */
       size_t bx;			/*!< Data byte index. */
       int first;
  @@ -87,7 +87,7 @@
   	/*@globals fileSystem @*/
   	/*@modifies xar, fileSystem @*/;
   
  -int rpmxarPush(rpmxar xar, const char * fn, char * b, size_t bsize)
  +int rpmxarPush(rpmxar xar, const char * fn, unsigned char * b, size_t bsize)
   	/*@globals fileSystem @*/
   	/*@modifies xar, fileSystem @*/;
   
  @@ -95,8 +95,8 @@
   	/*@globals fileSystem @*/
   	/*@modifies xar, fileSystem @*/;
   
  -int rpmxarSwapBuf(rpmxar xar, /*@null@*/ char * b, size_t bsize,
  -		/*@null@*/ char ** obp, /*@null@*/ size_t * obsizep)
  +int rpmxarSwapBuf(rpmxar xar, /*@null@*/ unsigned char * b, size_t bsize,
  +		/*@null@*/ unsigned char ** obp, /*@null@*/ size_t * obsizep)
   	/*@globals fileSystem @*/
   	/*@modifies xar, *obp, *obsizep, fileSystem @*/;
   
  @@ .
Received on Sat Nov 24 00:52:36 2007
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.