From: Michael Schroeder Date: Mon, 18 Apr 2016 15:40:26 +0000 (+0200) Subject: Fix of by one error in repo_deb that could lead to missing packages X-Git-Tag: 0.6.21~22 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=30b06921106ba2202da36cb1d45e08c95b4daf43;p=thirdparty%2Flibsolv.git Fix of by one error in repo_deb that could lead to missing packages --- diff --git a/ext/repo_deb.c b/ext/repo_deb.c index 35dcc848..812f3d91 100644 --- a/ext/repo_deb.c +++ b/ext/repo_deb.c @@ -388,12 +388,10 @@ repo_add_debpackages(Repo *repo, FILE *fp, int flags) if (!(p = strchr(p, '\n'))) { int l3; - if (l + 1024 >= bufl) + while (l + 1024 >= bufl) { buf = solv_realloc(buf, bufl + 4096); bufl += 4096; - p = buf + l; - continue; } p = buf + l; ll = fread(p, 1, bufl - l - 1, fp); @@ -403,6 +401,8 @@ repo_add_debpackages(Repo *repo, FILE *fp, int flags) while ((l3 = strlen(p)) < ll) p[l3] = '\n'; l += ll; + if (p != buf) + p--; continue; } p++;