summaryrefslogtreecommitdiffstats
path: root/term-utils/setterm.c
diff options
context:
space:
mode:
Diffstat (limited to 'term-utils/setterm.c')
-rw-r--r--term-utils/setterm.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/term-utils/setterm.c b/term-utils/setterm.c
index 18873f331..1cbc97900 100644
--- a/term-utils/setterm.c
+++ b/term-utils/setterm.c
@@ -1159,6 +1159,7 @@ screendump(int vcnum, FILE * F)
unsigned int rows, cols;
int fd;
size_t i, j;
+ ssize_t rc;
char *inbuf, *outbuf, *p, *q;
sprintf(infile, "/dev/vcsa%d", vcnum);
@@ -1188,7 +1189,8 @@ screendump(int vcnum, FILE * F)
inbuf = xmalloc(rows * cols * 2);
outbuf = xmalloc(rows * (cols + 1));
- if (read(fd, inbuf, rows * cols * 2) != rows * cols * 2)
+ rc = read(fd, inbuf, rows * cols * 2);
+ if (rc < 0 || (size_t) rc != rows * cols * 2)
goto read_error;
p = inbuf;
q = outbuf;