mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 17:38:00 +00:00
Missing NULL check in swap_screen.
Coverity points out that this function is mostly written as if it's intended to allow for term->screen and/or term->alt_screen to be NULL, but makes an unguarded call to find_last_nonempty_line on one of them. I don't immediately remember _why_ I needed to deal with those pointers being null, but it was probably a safety precaution against swap_screen being called during setup or during reconfiguration, in which case it seems sensible to keep it even if it's not needed in the _current_ state of the code. So, added the missing check.
This commit is contained in:
parent
41053e9dcd
commit
2316b44426
@ -2066,7 +2066,9 @@ static void swap_screen(Terminal *term, int which,
|
|||||||
ttr = term->alt_screen;
|
ttr = term->alt_screen;
|
||||||
term->alt_screen = term->screen;
|
term->alt_screen = term->screen;
|
||||||
term->screen = ttr;
|
term->screen = ttr;
|
||||||
term->alt_sblines = find_last_nonempty_line(term, term->alt_screen) + 1;
|
term->alt_sblines = (
|
||||||
|
term->alt_screen ?
|
||||||
|
find_last_nonempty_line(term, term->alt_screen) + 1 : 0);
|
||||||
t = term->curs.x;
|
t = term->curs.x;
|
||||||
if (!reset && !keep_cur_pos)
|
if (!reset && !keep_cur_pos)
|
||||||
term->curs.x = term->alt_x;
|
term->curs.x = term->alt_x;
|
||||||
|
Loading…
Reference in New Issue
Block a user