RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: rpm/ CHANGES rpm/build/ pack.c rpm/lib/ package.c rpm/rpmdb...

From: Jeff Johnson <jbj@rpm5.org>
Date: Tue 20 Nov 2007 - 23:39:01 CET
Message-Id: <20071120223901.26B8634845C@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:   20-Nov-2007 23:39:01
  Branch: HEAD                             Handle: 2007112022390000

  Modified files:
    rpm                     CHANGES
    rpm/build               pack.c
    rpm/lib                 package.c
    rpm/rpmdb               pkgio.c signature.c

  Log:
    - jbj: convert last headerWrite to use rpmpkgWrite instead.
    - jbj: convert 2 (of 9 remaining) headerRead's to use rpmpkgRead instead.
    - jbj: add newlines to error message spew from pkgio.
    - jbj: fix: read from the input, not the output, fd.

  Summary:
    Revision    Changes     Path
    1.1857      +4  -0      rpm/CHANGES
    2.253       +8  -8      rpm/build/pack.c
    2.189       +6  -6      rpm/lib/package.c
    1.46        +9  -1      rpm/rpmdb/pkgio.c
    1.31        +34 -8      rpm/rpmdb/signature.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.1856 -r1.1857 CHANGES
  --- rpm/CHANGES	20 Nov 2007 21:45:22 -0000	1.1856
  +++ rpm/CHANGES	20 Nov 2007 22:39:00 -0000	1.1857
  @@ -1,4 +1,8 @@
   5.0a2 -> 5.0a3:
  +    - jbj: convert last headerWrite to use rpmpkgWrite instead.
  +    - jbj: conver 2 (of 9 remaining) headerRead's to use rpmpkgRead instead.
  +    - jbj: add newlines to error message spew from pkgio.
  +    - jbj: fix: read from the input, not the output, fd.
       - jbj: bury rpmReadHeader underneath rpmpkgRead("Header", ...).
       - jbj: use the fd attached pgpDig everywhere necessary.
       - jbj: attach pgpDig to the fd being used to verify signatures.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/build/pack.c
  ============================================================================
  $ cvs diff -u -r2.252 -r2.253 pack.c
  --- rpm/build/pack.c	19 Nov 2007 20:55:12 -0000	2.252
  +++ rpm/build/pack.c	20 Nov 2007 22:39:00 -0000	2.253
  @@ -361,21 +361,21 @@
   
   	if (nl == 0) {
   	    rc = RPMRC_FAIL;
  -	    msg = "item size is zero";
  +	    msg = xstrdup("item size is zero");
   	} else {
   	    l = xcalloc(1, nl);		/* XXX memory leak */
   	    msg = NULL;
   	    rc = rpmpkgRead(item, fdi, l, &msg);
  -	    if (rc != RPMRC_OK && msg == NULL)
  -		msg = Fstrerror(fdi);
   	}
       }
   
       if (rc != RPMRC_OK) {
   	rpmlog(RPMLOG_ERR, _("readRPM: read %s: %s\n"),
   		(fileName ? fileName : "<stdin>"), msg);
  +	msg = _free(msg);
   	return RPMRC_FAIL;
       }
  +    msg = _free(msg);
       /*@=sizeoftype@*/
   
       /* XXX FIXME: EPIPE on <stdin> */
  @@ -732,7 +732,7 @@
   	msg = NULL;
   	rc = rpmpkgWrite(item, fd, h, &msg);
   	if (rc != RPMRC_OK) {
  -	    rpmlog(RPMLOG_ERR, "%s: %s: %s", sigtarget, item,
  +	    rpmlog(RPMLOG_ERR, "%s: %s: %s\n", sigtarget, item,
   		(msg && *msg ? msg : "write failed\n"));
   	    msg = _free(msg);
   	    rc = RPMRC_FAIL;
  @@ -839,7 +839,7 @@
   	msg = NULL;
   	rc = rpmpkgWrite(item, fd, sigh, &msg);
   	if (rc != RPMRC_OK) {
  -	    rpmlog(RPMLOG_ERR, "%s: %s: %s", fileName, item,
  +	    rpmlog(RPMLOG_ERR, "%s: %s: %s\n", fileName, item,
                   (msg && *msg ? msg : "write failed\n"));
   	    msg = _free(msg);
   	    rc = RPMRC_FAIL;
  @@ -861,9 +861,9 @@
   	Header nh = NULL;
   
   	msg = NULL;
  -	rc = rpmpkgRead(item, fd, &nh, &msg);
  +	rc = rpmpkgRead(item, ifd, &nh, &msg);
   	if (rc != RPMRC_OK) {
  -	    rpmlog(RPMLOG_ERR, "%s: %s: %s", sigtarget, item,
  +	    rpmlog(RPMLOG_ERR, "%s: %s: %s\n", sigtarget, item,
                   (msg && *msg ? msg : "read failed\n"));
   	    msg = _free(msg);
   	    rc = RPMRC_FAIL;
  @@ -878,7 +878,7 @@
   	rc = rpmpkgWrite(item, fd, nh, &msg);
   	nh = headerFree(nh);
   	if (rc != RPMRC_OK) {
  -	    rpmlog(RPMLOG_ERR, "%s: %s: %s", fileName, item,
  +	    rpmlog(RPMLOG_ERR, "%s: %s: %s\n", fileName, item,
                   (msg && *msg ? msg : "write failed\n"));
   	    msg = _free(msg);
   	    rc = RPMRC_FAIL;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/lib/package.c
  ============================================================================
  $ cvs diff -u -r2.188 -r2.189 package.c
  --- rpm/lib/package.c	20 Nov 2007 21:45:22 -0000	2.188
  +++ rpm/lib/package.c	20 Nov 2007 22:39:00 -0000	2.189
  @@ -206,12 +206,12 @@
       {	const char item[] = "Header";
   	msg = NULL;
   	rc = rpmpkgRead(item, fd, &h, msg);
  -        if (rc != RPMRC_OK) {
  -            rpmlog(RPMLOG_ERR, "%s: %s: %s\n", fn, item, msg);
  -            msg = _free(msg);
  -            goto exit;
  -        }
  -        msg = _free(msg);
  +	if (rc != RPMRC_OK) {
  +	    rpmlog(RPMLOG_ERR, "%s: %s: %s\n", fn, item, msg);
  +	    msg = _free(msg);
  +	    goto exit;
  +	}
  +	msg = _free(msg);
       }
       nb += fd->stats->ops[FDSTAT_READ].bytes;
   /*@=type@*/
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/pkgio.c
  ============================================================================
  $ cvs diff -u -r1.45 -r1.46 pkgio.c
  --- rpm/rpmdb/pkgio.c	20 Nov 2007 21:45:23 -0000	1.45
  +++ rpm/rpmdb/pkgio.c	20 Nov 2007 22:39:00 -0000	1.46
  @@ -1149,7 +1149,15 @@
       rpmRC rc = RPMRC_FAIL;		/* assume failure */
       int xx;
   
  -assert(dig != NULL);
  +    if (dig == NULL) {
  +	*hdrp = headerRead(fd);
  +	if (*hdrp == NULL) {
  +	    if (msg)
  +		*msg = xstrdup(Fstrerror(fd));
  +	    return RPMRC_FAIL;
  +	}
  +	return RPMRC_OK;
  +    }
       buf[0] = '\0';
   
       if (hdrp)
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/signature.c
  ============================================================================
  $ cvs diff -u -r1.30 -r1.31 signature.c
  --- rpm/rpmdb/signature.c	20 Nov 2007 17:37:03 -0000	1.30
  +++ rpm/rpmdb/signature.c	20 Nov 2007 22:39:00 -0000	1.31
  @@ -314,6 +314,8 @@
       byte * pkt;
       uint32_t pktlen;
       const char * fn = NULL;
  +    const char * msg;
  +    rpmRC rc;
       int ret = -1;	/* assume failure. */
       int xx;
   
  @@ -330,9 +332,16 @@
   	fd = Fopen(file, "r.fdio");
   	if (fd == NULL || Ferror(fd))
   	    goto exit;
  -	h = headerRead(fd);
  -	if (h == NULL)
  -	    goto exit;
  +	{   const char item[] = "Header";
  +	    msg = NULL;
  +	    rc = rpmpkgRead(item, fd, &h, &msg);
  +	    if (rc != RPMRC_OK) {
  +		rpmlog(RPMLOG_ERR, "%s: %s: %s\n", fn, item, msg);
  +		msg = _free(msg);
  +		goto exit;
  +	    }
  +	    msg = _free(msg);
  +	}
   	(void) Fclose(fd);	fd = NULL;
   
   	if (headerIsEntry(h, RPMTAG_HEADERIMMUTABLE)) {
  @@ -372,15 +381,32 @@
   	fd = Fopen(file, "r.fdio");
   	if (fd == NULL || Ferror(fd))
   	    goto exit;
  -	h = headerRead(fd);
  -	if (h == NULL)
  -	    goto exit;
  +	{   const char item[] = "Header";
  +	    msg = NULL;
  +	    rc = rpmpkgRead(item, fd, &h, &msg);
  +	    if (rc != RPMRC_OK) {
  +		rpmlog(RPMLOG_ERR, "%s: %s: %s\n", fn, item, msg);
  +		msg = _free(msg);
  +		goto exit;
  +	    }
  +	    msg = _free(msg);
  +	}
   	(void) Fclose(fd);	fd = NULL;
  +
   	if (rpmTempFile(NULL, &fn, &fd))
   	    goto exit;
  -	if (headerWrite(fd, h))
  -	    goto exit;
  +	{   const char item[] = "Header";
  +	    msg = NULL;
  +	    rc = rpmpkgWrite(item, fd, h, &msg);
  +	    if (rc != RPMRC_OK) {
  +		rpmlog(RPMLOG_ERR, "%s: %s: %s\n", fn, item, msg);
  +		msg = _free(msg);
  +		goto exit;
  +	    }
  +	    msg = _free(msg);
  +	}
   	(void) Fclose(fd);	fd = NULL;
  +
   	if (makeGPGSignature(fn, &sigTag, &pkt, &pktlen, passPhrase))
   	    goto exit;
   	he->tag = sigTag;
  @@ .
Received on Tue Nov 20 23:39:01 2007
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.