summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/repo_rpmdb.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/ext/repo_rpmdb.c b/ext/repo_rpmdb.c
index 0bfb503..9ab49d6 100644
--- a/ext/repo_rpmdb.c
+++ b/ext/repo_rpmdb.c
@@ -645,7 +645,7 @@ adddudata(Repodata *data, Id handle, RpmHead *rpmhead, char **dn, unsigned int *
for (i = 0; i < fc; i++)
{
if (di[i] >= dc)
- continue;
+ continue; /* corrupt entry */
fn[di[i]]++;
if (fsz[i] == 0 || !S_ISREG(fm[i]))
continue;
@@ -683,7 +683,7 @@ addfilelist(Repodata *data, Id handle, RpmHead *rpmhead)
int bnc, dnc, dic;
int i;
Id lastdid = 0;
- int lastdii = -1;
+ unsigned int lastdii = -1;
if (!data)
return;
@@ -720,6 +720,8 @@ addfilelist(Repodata *data, Id handle, RpmHead *rpmhead)
did = lastdid;
else
{
+ if (di[i] >= dnc)
+ continue; /* corrupt entry */
did = repodata_str2dir(data, dn[di[i]], 1);
if (!did)
did = repodata_str2dir(data, "/", 1);