X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/a96603a0e5a7283a9275fb090dac95a42e05a423..e9477a08d2d1f528b1f127f1d563d77e2cf24a22:/src/src/queue.c diff --git a/src/src/queue.c b/src/src/queue.c index 84f957c0f..8876e09be 100644 --- a/src/src/queue.c +++ b/src/src/queue.c @@ -1,10 +1,8 @@ -/* $Cambridge: exim/src/src/queue.c,v 1.12 2007/06/19 14:41:31 ph10 Exp $ */ - /************************************************* * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2007 */ +/* Copyright (c) University of Cambridge 1995 - 2009 */ /* See the file NOTICE for conditions of use and distribution. */ /* Functions that operate on the input queue. */ @@ -652,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); - (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"); @@ -1020,7 +1019,7 @@ if (action >= MSG_SHOW_BODY) } 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;