Fix out of boundary write on 1x1 terminals

If a terminal is merely 1x1 in size, setsize() will write a nul byte in
front of the allocated memory, which is an out of boundary write.
This commit is contained in:
Tobias Stoeckmann 2017-02-19 15:12:42 +00:00 committed by Craig Small
parent d8fb86dbc5
commit e6e228e7f4

View File

@ -70,6 +70,8 @@ static void setsize(int i)
nrows = win.ws_row; nrows = win.ws_row;
} }
scr_size = nrows * ncols; scr_size = nrows * ncols;
if (scr_size < 2)
xerr(EXIT_FAILURE, _("screen too small"));
if (screen == NULL) if (screen == NULL)
screen = (char *)xmalloc(scr_size); screen = (char *)xmalloc(scr_size);
else else