summaryrefslogtreecommitdiff
path: root/miscutils/less.c
diff options
context:
space:
mode:
authorDenys Vlasenko2016-08-16 15:09:40 +0200
committerDenys Vlasenko2016-08-16 15:09:40 +0200
commit252559601f12e22ad3a687fb8188fdbf63bbdc45 (patch)
tree534d9090163e81f88a1f561150683aa6860daa13 /miscutils/less.c
parent560cf8c7ebd3feff6244a381a300cb2bac8570ec (diff)
downloadbusybox-252559601f12e22ad3a687fb8188fdbf63bbdc45.zip
busybox-252559601f12e22ad3a687fb8188fdbf63bbdc45.tar.gz
less: fix SEGV
testcase: echo "" | less, then press ')' key Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'miscutils/less.c')
-rw-r--r--miscutils/less.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/miscutils/less.c b/miscutils/less.c
index d7076db..10e1d8e 100644
--- a/miscutils/less.c
+++ b/miscutils/less.c
@@ -1591,7 +1591,9 @@ static void match_right_bracket(char bracket)
{
unsigned i;
- if (strchr(flines[cur_fline], bracket) == NULL) {
+ if (cur_fline >= max_fline
+ || strchr(flines[cur_fline], bracket) == NULL
+ ) {
print_statusline("No bracket in top line");
return;
}
@@ -1609,7 +1611,9 @@ static void match_left_bracket(char bracket)
{
int i;
- if (strchr(flines[cur_fline + max_displayed_line], bracket) == NULL) {
+ if (cur_fline + max_displayed_line >= max_fline
+ || strchr(flines[cur_fline + max_displayed_line], bracket) == NULL
+ ) {
print_statusline("No bracket in bottom line");
return;
}