commit 61e06396bdea2352b602a46a2ff7fcd627d073cb
Author:     Thomas Mannay <audiobarr...@openmailbox.org>
AuthorDate: Sun Oct 9 23:10:20 2016 +0000
Commit:     Laslo Hunhold <d...@frign.de>
CommitDate: Tue Dec 27 12:50:03 2016 +0100

    ed: remove infinite loops in join() and getindex()

diff --git a/ed.c b/ed.c
index 582a5a2..c4cce37 100644
--- a/ed.c
+++ b/ed.c
@@ -192,7 +192,9 @@ getindex(int line)
        struct hline *lp;
        int n;
 
-       for (n = 0, lp = zero; n != line; ++n)
+       if (line == -1)
+               line = 0;
+       for (n = 0, lp = zero; n != line; n++)
                lp = zero + lp->next;
 
        return lp - zero;
@@ -806,9 +808,11 @@ join(void)
        static char *s;
 
        free(s);
-       for (s = NULL, i = line1; i <= line2; i = nextln(i)) {
+       for (s = NULL, i = line1;; i = nextln(i)) {
                for (t = gettxt(i); (c = *t) != '\n'; ++t)
                        s = addchar(*t, s, &cap, &len);
+               if (i == line2)
+                       break;
        }
 
        s = addchar('\n', s, &cap, &len);

Reply via email to