Applied, thank you.
On Tue, Mar 30, 2021 at 2:02 PM Ron Yorston <r...@pobox.com> wrote: > > Since commit 25d259264 (vi: make buffer handling more vi-like) > find_range() can return early when an invalid movement is > specified. > > The call to find_range() in the code that handles shift commands > ('<' and '>') doesn't check for this condition. Previously this > only resulted in the current line being shifted but it can now > result in a segfault. > > Check for an invalid movement and notify the user without taking > any further action. > > function old new delta > do_cmd 4890 4898 +8 > ------------------------------------------------------------------------------ > (add/remove: 0/0 grow/shrink: 1/0 up/down: 8/0) Total: 8 bytes > > Signed-off-by: Ron Yorston <r...@pobox.com> > --- > editors/vi.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/editors/vi.c b/editors/vi.c > index 4fa67a110..dd2e055d1 100644 > --- a/editors/vi.c > +++ b/editors/vi.c > @@ -3574,7 +3574,10 @@ static void do_cmd(int c) > case '>': // >- Right shift something > cnt = count_lines(text, dot); // remember what line we are > on > c1 = get_motion_char(); // get the type of thing to operate on > - find_range(&p, &q, c1); > + if (find_range(&p, &q, c1) == -1) { > + indicate_error(); > + goto dc6; > + } > yank_delete(p, q, WHOLE, YANKONLY, NO_UNDO); // save copy > before change > p = begin_line(p); > q = end_line(q); > -- > 2.30.2 > > _______________________________________________ > busybox mailing list > busybox@busybox.net > http://lists.busybox.net/mailman/listinfo/busybox _______________________________________________ busybox mailing list busybox@busybox.net http://lists.busybox.net/mailman/listinfo/busybox