teknoraver / rpms / rpm

Forked from rpms/rpm 4 months ago
Clone

Blame rpm-4.9.0-beta1-rpmdb-dsi.patch

Panu Matilainen f3f6be
commit bd96c179b79fce627403804ad6c236c783aca478
Panu Matilainen f3f6be
Author: Panu Matilainen <pmatilai@redhat.com>
Panu Matilainen f3f6be
Date:   Fri Jan 21 14:02:28 2011 +0200
Panu Matilainen f3f6be
Panu Matilainen f3f6be
    Plug potential division by zero in the rpmdb size calculation (RhBug:671056)
Panu Matilainen f3f6be
    - This smells like treating the symptom instead of the disease, add
Panu Matilainen f3f6be
      a reminder comment to figure out what's going on here...
Panu Matilainen f3f6be
Panu Matilainen f3f6be
diff --git a/lib/transaction.c b/lib/transaction.c
Panu Matilainen f3f6be
index ed6f738..06e54af 100644
Panu Matilainen f3f6be
--- a/lib/transaction.c
Panu Matilainen f3f6be
+++ b/lib/transaction.c
Panu Matilainen f3f6be
@@ -246,7 +246,8 @@ static void rpmtsUpdateDSIrpmDBSize(const rpmte p,
Panu Matilainen f3f6be
     rpm_loff_t headerSize;
Panu Matilainen f3f6be
     int64_t bneeded;
Panu Matilainen f3f6be
 
Panu Matilainen f3f6be
-    if (dsi==NULL) return;
Panu Matilainen f3f6be
+    /* XXX somehow we can end up here with bsize 0 (RhBug:671056) */
Panu Matilainen f3f6be
+    if (dsi == NULL || dsi->bsize == 0) return;
Panu Matilainen f3f6be
 
Panu Matilainen f3f6be
     headerSize = rpmteHeaderSize(p);
Panu Matilainen f3f6be
     bneeded = BLOCK_ROUND(headerSize, dsi->bsize);