From 90dfce0d3edc92287ce1519dafc7e91ba70c1368 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 20 Oct 2014 21:56:21 -0400 Subject: don't segfault on CUP with large parameters --- src/parser.l | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src') diff --git a/src/parser.l b/src/parser.l index cdf1efc..010411e 100644 --- a/src/parser.l +++ b/src/parser.l @@ -423,6 +423,14 @@ static void vt100_parser_handle_cup(VT100Screen *vt, char *buf, size_t len) if (params[1] == 0) { params[1] = 1; } + /* this needs to be fixed up here (and not in screen.c) because CUP hsould + * never cause scrolling */ + if (params[0] > vt->grid->max.row) { + params[0] = vt->grid->max.row; + } + if (params[1] > vt->grid->max.col) { + params[1] = vt->grid->max.col; + } vt100_screen_move_to(vt, params[0] - 1, params[1] - 1); } -- cgit v1.2.3