git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Check syscall return values.
[exim.git]
/
src
/
src
/
queue.c
diff --git
a/src/src/queue.c
b/src/src/queue.c
index b3dbd2c4ea8dcd30592bdcfcbdf84b3d2abe4c76..ff0ae67e534e600dc1e0dba1faef5f84ae90c5ca 100644
(file)
--- a/
src/src/queue.c
+++ b/
src/src/queue.c
@@
-650,7
+650,8
@@
for (i = (queue_run_in_order? -1 : 0);
the mere fact that read() unblocks is enough. */
set_process_info("running queue: waiting for children of %d", pid);
the mere fact that read() unblocks is enough. */
set_process_info("running queue: waiting for children of %d", pid);
- (void)read(pfd[pipe_read], buffer, sizeof(buffer));
+ if (read(pfd[pipe_read], buffer, sizeof(buffer)) >= 0)
+ log_write(0, LOG_MAIN|LOG_PANIC, "queue run: unexpected data on pipe");
(void)close(pfd[pipe_read]);
set_process_info("running queue");
(void)close(pfd[pipe_read]);
set_process_info("running queue");
@@
-1018,7
+1019,7
@@
if (action >= MSG_SHOW_BODY)
}
while((rc = read(fd, big_buffer, big_buffer_size)) > 0)
}
while((rc = read(fd, big_buffer, big_buffer_size)) > 0)
-
(void)
write(fileno(stdout), big_buffer, rc);
+
rc =
write(fileno(stdout), big_buffer, rc);
(void)close(fd);
return TRUE;
(void)close(fd);
return TRUE;