Also, use xerrx() instead of xerr() since errno is not set.
#include <sys/ioctl.h>
#include <termios.h>
#include <unistd.h>
+#include <limits.h>
static char *screen;
if (win.ws_row > 0)
nrows = win.ws_row;
}
+ if (ncols < 2 || ncols >= INT_MAX)
+ xerrx(EXIT_FAILURE, _("screen too small or too large"));
+ if (nrows < 2 || nrows >= INT_MAX / ncols)
+ xerrx(EXIT_FAILURE, _("screen too small or too large"));
scr_size = nrows * ncols;
if (scr_size < 2)
- xerr(EXIT_FAILURE, _("screen too small"));
+ xerrx(EXIT_FAILURE, _("screen too small"));
if (screen == NULL)
screen = (char *)xmalloc(scr_size);
else