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 17:35:43
Branch: HEAD Handle: 2007112316354201
Modified files:
rpm CHANGES
rpm/lib rpmchecksig.c
rpm/rpmdb pkgio.c rpmwf.c
rpm/rpmio rpmxar.c
Log:
- spiffy error msgs for the XAR challenged users.
Summary:
Revision Changes Path
1.1874 +1 -0 rpm/CHANGES
1.196 +10 -7 rpm/lib/rpmchecksig.c
1.57 +26 -17 rpm/rpmdb/pkgio.c
1.18 +0 -4 rpm/rpmdb/rpmwf.c
2.6 +23 -6 rpm/rpmio/rpmxar.c
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.1873 -r1.1874 CHANGES
--- rpm/CHANGES 23 Nov 2007 07:06:01 -0000 1.1873
+++ rpm/CHANGES 23 Nov 2007 16:35:42 -0000 1.1874
@@ -1,4 +1,5 @@
5.0a2 -> 5.0a3:
+ - jbj: spiffy error msgs for the XAR challenged users.
- jbj: splint fiddles for rpmxar and rpmTag.
- jbj: bury timedRead in pkgio.c, eliminate everywhere else.
- jbj: eliminate (unused) hPTR_t.
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpmchecksig.c
============================================================================
$ cvs diff -u -r1.195 -r1.196 rpmchecksig.c
--- rpm/lib/rpmchecksig.c 23 Nov 2007 12:12:32 -0000 1.195
+++ rpm/lib/rpmchecksig.c 23 Nov 2007 16:35:43 -0000 1.196
@@ -832,18 +832,21 @@
h = headerFree(h);
}
-#ifdef WITH_XAR
-if (xar != NULL) {
- if ((xx = rpmxarNext(xar)) != 0) return RPMRC_FAIL;
- if ((xx = rpmxarPull(xar, "Payload")) != 0) return RPMRC_FAIL;
-}
-#endif
+ if (xar != NULL) {
+ const char item[] = "Payload";
+ if ((xx = rpmxarNext(xar)) != 0 || (xx = rpmxarPull(xar, item)) != 0) {
+ rpmlog(RPMLOG_ERR, "%s: %s: %s\n", fn, item,
+ _("XAR file not found (or no XAR support)"));
+ rc = RPMRC_NOTFOUND;
+ goto exit;
+ }
+ }
/* Read the payload from the package. */
while ((count = Fread(buf, sizeof(buf[0]), sizeof(buf), fd)) > 0)
dig->nbytes += count;
if (count < 0 || Ferror(fd)) {
- rpmlog(RPMLOG_ERR, _("%s: Fread failed: %s\n"), fn, Fstrerror(fd));
+ rpmlog(RPMLOG_ERR, "%s: %s: %s\n", fn, _("Fread failed"), Fstrerror(fd));
rc = RPMRC_FAIL;
goto exit;
}
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/pkgio.c
============================================================================
$ cvs diff -u -r1.56 -r1.57 pkgio.c
--- rpm/rpmdb/pkgio.c 23 Nov 2007 12:12:32 -0000 1.56
+++ rpm/rpmdb/pkgio.c 23 Nov 2007 16:35:43 -0000 1.57
@@ -494,7 +494,6 @@
goto exit;
}
-#ifdef WITH_XAR
/* Attach rpmxar handler to fd if this is a xar archive. */
if (xar == NULL) {
unsigned char * bh = (unsigned char *)l;
@@ -511,21 +510,25 @@
if (xar != NULL) {
void *b = NULL;
size_t nb = 0;
- if ((xx = rpmxarNext(xar)) != 0) return RPMRC_FAIL;
- if ((xx = rpmxarPull(xar, "Lead")) != 0) return RPMRC_FAIL;
+ const char item[] = "Lead";
+ if ((xx = rpmxarNext(xar)) != 0 || (xx = rpmxarPull(xar, item)) != 0) {
+ (void) snprintf(buf, sizeof(buf),
+ _("XAR file not found (or no XAR support)"));
+ rc = RPMRC_NOTFOUND;
+ goto exit;
+ }
(void) rpmxarSwapBuf(xar, NULL, 0, (char **)&b, &nb);
if (nb != sizeof(*l)) {
b = _free(b);
(void) snprintf(buf, sizeof(buf),
_("lead size(%u): BAD, xar read(%u)"),
(unsigned)sizeof(*l), (unsigned)nb);
- rc = RPMRC_NOTFOUND;
+ rc = RPMRC_FAIL;
goto exit;
}
memcpy(l, b, nb);
b = _free(b);
}
-#endif
l->type = (unsigned short) ntohs(l->type);
l->archnum = (unsigned short) ntohs(l->archnum);
@@ -682,12 +685,15 @@
*sighp = NULL;
memset(block, 0, sizeof(block));
-#ifdef WITH_XAR
-if (xar != NULL) {
- if ((xx = rpmxarNext(xar)) != 0) return RPMRC_FAIL;
- if ((xx = rpmxarPull(xar, "Signature")) != 0) return RPMRC_FAIL;
-}
-#endif
+ if (xar != NULL) {
+ const char item[] = "Signature";
+ if ((xx = rpmxarNext(xar)) != 0 || (xx = rpmxarPull(xar, item)) != 0) {
+ (void) snprintf(buf, sizeof(buf),
+ _("XAR file not found (or no XAR support)"));
+ rc = RPMRC_NOTFOUND;
+ goto exit;
+ }
+ }
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);
@@ -1246,12 +1252,15 @@
*hdrp = NULL;
memset(block, 0, sizeof(block));
-#ifdef WITH_XAR
-if (xar != NULL) {
- if ((xx = rpmxarNext(xar)) != 0) return RPMRC_FAIL;
- if ((xx = rpmxarPull(xar, "Header")) != 0) return RPMRC_FAIL;
-}
-#endif
+ if (xar != NULL) {
+ const char item[] = "Header";
+ if ((xx = rpmxarNext(xar)) != 0 || (xx = rpmxarPull(xar, item)) != 0) {
+ (void) snprintf(buf, sizeof(buf),
+ _("XAR file not found (or no XAR support)"));
+ rc = RPMRC_NOTFOUND;
+ goto exit;
+ }
+ }
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);
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/rpmwf.c
============================================================================
$ cvs diff -u -r1.17 -r1.18 rpmwf.c
--- rpm/rpmdb/rpmwf.c 23 Nov 2007 12:12:32 -0000 1.17
+++ rpm/rpmdb/rpmwf.c 23 Nov 2007 16:35:43 -0000 1.18
@@ -16,8 +16,6 @@
/*@unchecked@*/
int _rpmwf_debug = 0;
-#if defined(WITH_XAR)
-
rpmRC rpmwfPushXAR(rpmwf wf, const char * fn)
{
char * b = NULL;
@@ -341,5 +339,3 @@
return rc;
}
-
-#endif
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/rpmxar.c
============================================================================
$ cvs diff -u -r2.5 -r2.6 rpmxar.c
--- rpm/rpmio/rpmxar.c 23 Nov 2007 07:06:01 -0000 2.5
+++ rpm/rpmio/rpmxar.c 23 Nov 2007 16:35:43 -0000 2.6
@@ -1,4 +1,6 @@
#include "system.h"
+
+#undef WITH_XAR
#ifdef HAVE_XAR_H
#include "xar.h"
#endif
@@ -15,8 +17,6 @@
/*@unchecked@*/
int _xar_debug = 0;
-#if defined(WITH_XAR)
-
rpmxar XrpmxarUnlink(rpmxar xar, const char * msg, const char * fn, unsigned ln)
{
if (xar == NULL) return NULL;
@@ -44,12 +44,12 @@
rpmxar rpmxarFree(rpmxar xar)
{
if (xar) {
- int xx;
/*@-onlytrans@*/
if (xar->nrefs > 1)
return rpmxarUnlink(xar, "rpmxarFree");
+#if defined(WITH_XAR)
if (xar->i) {
/*@-noeffectuncon@*/
xar_iter_free(xar->i);
@@ -57,11 +57,13 @@
xar->i = NULL;
}
if (xar->x) {
+ int xx;
/*@-noeffectuncon@*/
xx = xar_close(xar->x);
/*@=noeffectuncon@*/
xar->x = NULL;
}
+#endif /* WITH_XAR */
xar->member = _free(xar->member);
xar->b = _free(xar->b);
@@ -79,9 +81,12 @@
rpmxar rpmxarNew(const char * fn, const char * fmode)
{
rpmxar xar = xcalloc(1, sizeof(*xar));
+#if defined(WITH_XAR)
int flags = ((fmode && *fmode == 'w') ? WRITE : READ);
+#endif /* WITH_XAR */
assert(fn != NULL);
+#if defined(WITH_XAR)
/*@-moduncon@*/
xar->x = xar_open(fn, flags);
if (flags == READ) {
@@ -89,6 +94,7 @@
xar->first = 1;
}
/*@=moduncon@*/
+#endif /* WITH_XAR */
return rpmxarLink(xar, "rpmxarNew");
}
@@ -96,6 +102,8 @@
{
if (_xar_debug)
fprintf(stderr, "*** rpmxarNext(%p) first %d\n", xar, xar->first);
+
+#if defined(WITH_XAR)
/*@-moduncon@*/
if (xar->first) {
xar->f = xar_file_first(xar->x, xar->i);
@@ -103,6 +111,7 @@
} else
xar->f = xar_file_next(xar->i);
/*@=moduncon@*/
+#endif /* WITH_XAR */
return (xar->f == NULL ? 1 : 0);
}
@@ -110,9 +119,11 @@
int rpmxarPush(rpmxar xar, const char * fn)
{
if (xar->x && xar->b != NULL) {
+#if defined(WITH_XAR)
/*@-moduncon@*/
xar->f = xar_add_frombuffer(xar->x, NULL, fn, xar->b, xar->bsize);
/*@=moduncon@*/
+#endif
if (xar->f == NULL)
return 2;
}
@@ -121,14 +132,18 @@
int rpmxarPull(rpmxar xar, const char * fn)
{
+#if defined(WITH_XAR)
/*@-moduncon@*/
const char * path = xar_get_path(xar->f);
/*@=moduncon@*/
- int rc;
+#else
+ const char * path = xstrdup("*No XAR*");
+#endif /* WITH_XAR */
+ int rc = 1;
if (fn != NULL && strcmp(fn, path)) {
path = _free(path);
- return 1;
+ return rc;
}
xar->member = _free(xar->member);
xar->member = path;
@@ -136,9 +151,12 @@
xar->b = _free(xar->b);
xar->bsize = xar->bx = 0;
+#if defined(WITH_XAR)
/*@-moduncon -nullstate @*/
rc = (int) xar_extract_tobuffersz(xar->x, xar->f, &xar->b, &xar->bsize);
/*@=moduncon =nullstate @*/
+#endif /* WITH_XAR */
+
if (_xar_debug)
fprintf(stderr, "*** %s %p[%lu] rc %d\n", xar->member, xar->b, (unsigned long)xar->bsize, rc);
if (rc)
@@ -204,4 +222,3 @@
return rc;
}
-#endif
@@ .
Received on Fri Nov 23 17:35:43 2007