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