From: Michael Schroeder Date: Mon, 13 Jan 2014 17:25:50 +0000 (+0100) Subject: make addfilelist more resistant against corrupt rpms X-Git-Tag: upstream/0.6.4~125 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=20031e223d33af667c9b7e3106ea9c19ec4fbce7;p=platform%2Fupstream%2Flibsolv.git make addfilelist more resistant against corrupt rpms --- 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);