diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2016-08-16 15:09:40 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2016-08-16 15:09:40 +0200 |
commit | 252559601f12e22ad3a687fb8188fdbf63bbdc45 (patch) | |
tree | 534d9090163e81f88a1f561150683aa6860daa13 | |
parent | 560cf8c7ebd3feff6244a381a300cb2bac8570ec (diff) | |
download | busybox-w32-252559601f12e22ad3a687fb8188fdbf63bbdc45.tar.gz busybox-w32-252559601f12e22ad3a687fb8188fdbf63bbdc45.tar.bz2 busybox-w32-252559601f12e22ad3a687fb8188fdbf63bbdc45.zip |
less: fix SEGV
testcase: echo "" | less, then press ')' key
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | miscutils/less.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/miscutils/less.c b/miscutils/less.c index d7076dbbc..10e1d8e16 100644 --- a/miscutils/less.c +++ b/miscutils/less.c | |||
@@ -1591,7 +1591,9 @@ static void match_right_bracket(char bracket) | |||
1591 | { | 1591 | { |
1592 | unsigned i; | 1592 | unsigned i; |
1593 | 1593 | ||
1594 | if (strchr(flines[cur_fline], bracket) == NULL) { | 1594 | if (cur_fline >= max_fline |
1595 | || strchr(flines[cur_fline], bracket) == NULL | ||
1596 | ) { | ||
1595 | print_statusline("No bracket in top line"); | 1597 | print_statusline("No bracket in top line"); |
1596 | return; | 1598 | return; |
1597 | } | 1599 | } |
@@ -1609,7 +1611,9 @@ static void match_left_bracket(char bracket) | |||
1609 | { | 1611 | { |
1610 | int i; | 1612 | int i; |
1611 | 1613 | ||
1612 | if (strchr(flines[cur_fline + max_displayed_line], bracket) == NULL) { | 1614 | if (cur_fline + max_displayed_line >= max_fline |
1615 | || strchr(flines[cur_fline + max_displayed_line], bracket) == NULL | ||
1616 | ) { | ||
1613 | print_statusline("No bracket in bottom line"); | 1617 | print_statusline("No bracket in bottom line"); |
1614 | return; | 1618 | return; |
1615 | } | 1619 | } |