Am 24.03.2012 13:42, schrieb Zbigniew Jędrzejewski-Szmek: > On 03/24/2012 12:50 PM, Zbigniew Jędrzejewski-Szmek wrote: >> On 03/24/2012 11:05 AM, Julia Lawall wrote: >>> In linux, git show 60d9aa7 -U0 goes into an infinite loop. > > Bisect points to > commit b810cbbde9232cbe9a3841edccc5b606bbd3a82e (refs/bisect/bad) > Author: Junio C Hamano<gitster@xxxxxxxxx> > Date: Wed Jul 22 14:48:29 2009 -0700 > > diff --cc: a lost line at the beginning of the file is shown > incorrectly That's what I found as well, but I don't understand how this relates to the patch below, which should fix the issue. Valgrind told me where to look instead. -- >8 -- Subject: [PATCH] combine-diff: fix loop index underflow If both la and context are zero at the start of the loop, la wraps around and we end up reading from memory far away. Skip the loop in that case instead. Reported-by: Julia Lawall <julia.lawall@xxxxxxx> Signed-off-by: Rene Scharfe <rene.scharfe@xxxxxxxxxxxxxx> --- combine-diff.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/combine-diff.c b/combine-diff.c index a2e8dcf..9786680 100644 --- a/combine-diff.c +++ b/combine-diff.c @@ -423,7 +423,7 @@ static int make_hunks(struct sline *sline, unsigned long cnt, hunk_begin, j); la = (la + context < cnt + 1) ? (la + context) : cnt + 1; - while (j <= --la) { + while (la && j <= --la) { if (sline[la].flag & mark) { contin = 1; break; -- 1.7.9.2 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html