[git commit] less: fix SEGV

Denys Vlasenko vda.linux at googlemail.com
Tue Aug 16 13:09:40 UTC 2016


commit: https://git.busybox.net/busybox/commit/?id=252559601f12e22ad3a687fb8188fdbf63bbdc45
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

testcase: echo "" | less, then press ')' key

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 miscutils/less.c | 8 ++++++--
 1 file 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;
 	}


More information about the busybox-cvs mailing list