From c83fedf0bd0cb39ed4706113029b3e358f141707 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Wed, 8 Dec 2021 08:41:46 +0800 Subject: fix(terminal): return early if there are no invalid rows Prevent on_lines emitting out-of-bounds line indexes. --- src/nvim/terminal.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src') diff --git a/src/nvim/terminal.c b/src/nvim/terminal.c index 83ade74db1..e7c2713e10 100644 --- a/src/nvim/terminal.c +++ b/src/nvim/terminal.c @@ -1508,6 +1508,13 @@ static void refresh_screen(Terminal *term, buf_T *buf) // Terminal height may have decreased before `invalid_end` reflects it. term->invalid_end = MIN(term->invalid_end, height); + // There are no invalid rows. + if (term->invalid_start >= term->invalid_end) { + term->invalid_start = INT_MAX; + term->invalid_end = -1; + return; + } + for (int r = term->invalid_start, linenr = row_to_linenr(term, r); r < term->invalid_end; r++, linenr++) { fetch_row(term, r, width); -- cgit