bufchain_add(&ctx->queue, data, len);
} else if (ctx->state == L_OPEN) {
assert(ctx->lgfp);
- fwrite(data, 1, len, ctx->lgfp);
+ if (fwrite(data, 1, len, ctx->lgfp) < len) {
+ logfclose(ctx);
+ ctx->state = L_ERROR;
+ }
} /* else L_ERROR, so ignore the write */
}
*/
if (is_stderr) {
if (len > 0)
- fwrite(data, 1, len, stderr);
+ if (fwrite(data, 1, len, stderr) < len)
+ /* oh well */;
return 0;
}
*/
if (is_stderr) {
if (len > 0)
- fwrite(data, 1, len, stderr);
+ if (fwrite(data, 1, len, stderr) < len)
+ /* oh well */;
return 0;
}
newmode.c_lflag |= ECHO | ISIG | ICANON;
tcsetattr(0, TCSANOW, &newmode);
line[0] = '\0';
- read(0, line, sizeof(line) - 1);
+ if (read(0, line, sizeof(line) - 1) <= 0)
+ /* handled below */;
tcsetattr(0, TCSANOW, &oldmode);
}
newmode.c_lflag |= ECHO | ISIG | ICANON;
tcsetattr(0, TCSANOW, &newmode);
line[0] = '\0';
- read(0, line, sizeof(line) - 1);
+ if (read(0, line, sizeof(line) - 1) <= 0)
+ /* handled below */;
tcsetattr(0, TCSANOW, &oldmode);
}
newmode.c_lflag |= ECHO | ISIG | ICANON;
tcsetattr(0, TCSANOW, &newmode);
line[0] = '\0';
- read(0, line, sizeof(line) - 1);
+ if (read(0, line, sizeof(line) - 1) <= 0)
+ /* handled below */;
tcsetattr(0, TCSANOW, &oldmode);
}
void sigwinch(int signum)
{
- write(signalpipe[1], "x", 1);
+ if (write(signalpipe[1], "x", 1) <= 0)
+ /* not much we can do about it */;
}
/*
if (FD_ISSET(signalpipe[0], &rset)) {
char c[1];
struct winsize size;
- read(signalpipe[0], c, 1); /* ignore its value; it'll be `x' */
+ if (read(signalpipe[0], c, 1) <= 0)
+ /* ignore error */;
+ /* ignore its value; it'll be `x' */
if (ioctl(0, TIOCGWINSZ, (void *)&size) >= 0)
back->size(backhandle, size.ws_col, size.ws_row);
}
static void sigchld_handler(int signum)
{
- write(pty_signal_pipe[1], "x", 1);
+ if (write(pty_signal_pipe[1], "x", 1) <= 0)
+ /* not much we can do about it */;
}
#ifndef OMIT_UTMP
int status;
char c[1];
- read(pty_signal_pipe[0], c, 1); /* ignore its value; it'll be `x' */
+ if (read(pty_signal_pipe[0], c, 1) <= 0)
+ /* ignore error */;
+ /* ignore its value; it'll be `x' */
do {
pid = waitpid(-1, &status, WNOHANG);