Browse Source

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@lip6.fr>
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
René Scharfe 13 years ago committed by Junio C Hamano
parent
commit
e5e9b56528
  1. 2
      combine-diff.c

2
combine-diff.c

@ -414,7 +414,7 @@ static int make_hunks(struct sline *sline, unsigned long cnt, @@ -414,7 +414,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;

Loading…
Cancel
Save