]> git.neil.brown.name Git - wiggle.git/commitdiff
Browser: avoid possible infinite loop.
authorNeilBrown <neilb@suse.de>
Fri, 23 Aug 2013 03:10:12 +0000 (13:10 +1000)
committerNeilBrown <neilb@suse.de>
Fri, 23 Aug 2013 03:10:12 +0000 (13:10 +1000)
This can sometimes loop indefintely, so check for 'End' and
drop out.

Signed-off-by: NeilBrown <neilb@suse.de>
vpatch.c

index 3732c990021baee2b2c37d1f8009e36a0e5bcdc8..1328d5699585ee6a613c2522789aee238937d042 100644 (file)
--- a/vpatch.c
+++ b/vpatch.c
@@ -1605,7 +1605,8 @@ static int merge_window(struct plist *p, FILE *f, int reverse, int replace,
                                spos.state = 1;
                        while (spos.p.m >= 0 && spos.state != 0)
                                prev_mline(&spos, fm, fb, fa, ci.merger, smode);
-                       while (!same_mpos(spos, tpos))
+                       while (!same_mpos(spos, tpos) &&
+                              ci.merger[spos.p.m].type != End)
                                next_mline(&spos, fm, fb, fa, ci.merger, smode);
 
                        (void)attrset(a_sep);