diff options
author | Eduardo Chappa <chappa@washington.edu> | 2015-10-23 07:52:47 -0600 |
---|---|---|
committer | Eduardo Chappa <chappa@washington.edu> | 2015-10-23 07:52:47 -0600 |
commit | 940b52d33995e0af13edf48d5ee6647b7e8b4a17 (patch) | |
tree | c1eaa49422e7c19fe1eb9b00a5846271a235e6e2 /pico/pico.c | |
parent | 56a5f74f59620a8113db86467edaf589a4038119 (diff) | |
download | alpine-940b52d33995e0af13edf48d5ee6647b7e8b4a17.tar.xz |
* Crash in Pico when forwarding messages that contain a direction mark
at the end of a line. Reported by James Mingo.
Diffstat (limited to 'pico/pico.c')
-rw-r--r-- | pico/pico.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/pico/pico.c b/pico/pico.c index d93798c4..93d555d4 100644 --- a/pico/pico.c +++ b/pico/pico.c @@ -107,17 +107,19 @@ void remove_directions_mark(void) { LINE *lp; - int i, ll; + int i; UCS c; for(lp = lforw(curbp->b_linep); lp != curbp->b_linep; lp = lforw(lp)){ - ll = llength(lp); - for(i = 0; i < ll;){ + for(i = 0; i < llength(lp);){ c = lgetc(lp, i).c; if(c == 0x200E || c == 0x200F){ curwp->w_dotp = lp; curwp->w_doto = i; - forwdel(FALSE, 1); + if(i < llength(lp)) + forwdel(FALSE, 1); + else + llength(lp)--; direction = c == 0x200E ? 0 : 1; } else |