File backport.diff of Package rpm

A couple of fixes picked from upstream.

--- ./lib/rpminstall.c.orig	2010-04-08 12:35:48.000000000 +0000
+++ ./lib/rpminstall.c	2010-04-08 12:36:00.000000000 +0000
@@ -458,7 +458,7 @@ restart:
 	case URL_IS_HTTPS:
 	case URL_IS_HTTP:
 	case URL_IS_FTP:
-	{   char *tfn;
+	{   char *tfn = NULL;
 	    FD_t tfd;
 
 	    if (rpmIsVerbose())
--- ./lib/transaction.c.orig	2010-04-08 12:33:22.000000000 +0000
+++ ./lib/transaction.c	2010-04-08 12:35:00.000000000 +0000
@@ -183,6 +183,10 @@ static void rpmtsUpdateDSI(const rpmts t
 
     if (fixupSize)
 	dsi->bneeded -= BLOCK_ROUND(fixupSize, dsi->bsize);
+
+    /* adjust bookkeeping when requirements shrink */
+    if (dsi->bneeded < dsi->obneeded) dsi->obneeded = dsi->bneeded;
+    if (dsi->ineeded < dsi->oineeded) dsi->oineeded = dsi->ineeded;
 }
 
 static void rpmtsFindDSIMount(const rpmts ts, rpmDiskSpaceInfo dsi)
@@ -231,7 +235,7 @@ static void rpmtsCheckDSIProblems(const
     for (; dsi->bsize; dsi++) {
 
 	if (dsi->bavail >= 0 && adj_fs_blocks(dsi->bneeded) > dsi->bavail) {
-	    if (dsi->bneeded != dsi->obneeded) {
+	    if (dsi->bneeded > dsi->obneeded) {
 		if (!dsi->mntPoint)
 		    rpmtsFindDSIMount(ts, dsi);
 		rpmpsAppend(ps, RPMPROB_DISKSPACE,
@@ -243,7 +247,7 @@ static void rpmtsCheckDSIProblems(const
 	}
 
 	if (dsi->iavail >= 0 && adj_fs_blocks(dsi->ineeded) > dsi->iavail) {
-	    if (dsi->ineeded != dsi->oineeded) {
+	    if (dsi->ineeded > dsi->oineeded) {
 		if (!dsi->mntPoint)
 		    rpmtsFindDSIMount(ts, dsi);
 		rpmpsAppend(ps, RPMPROB_DISKNODES,
--- ./lib/verify.c.orig	2010-04-08 12:36:09.000000000 +0000
+++ ./lib/verify.c	2010-04-08 12:37:37.000000000 +0000
@@ -348,7 +348,7 @@ static int verifyHeader(QVA_t qva, const
 	    static const char *const aok = ".";
 	    static const char *const unknown = "?";
 
-	    ec = (verifyResult != 0);
+	    if (verifyResult) ec = 1;
 
 #define	_verify(_RPMVERIFY_F, _C)	\
 	((verifyResult & _RPMVERIFY_F) ? _C : aok)
openSUSE Build Service is sponsored by