diff --git a/src/testsuite/cmd-test-message.c b/src/testsuite/cmd-test-message.c index 7c968446097e837414f73337faa2d3c23e1a868f..4cd4b66fd8c12a2018c84e0c330d53f738432d1b 100644 --- a/src/testsuite/cmd-test-message.c +++ b/src/testsuite/cmd-test-message.c @@ -495,14 +495,17 @@ static int cmd_test_message_print_operation_execute } printf("\n--MESSAGE: \n"); - + /* Pipe the message to the outgoing SMTP transport */ while ((ret=i_stream_read_data(input, &data, &size, 0)) > 0) { - write(1, data, size); - i_stream_skip(input, size); + ssize_t wret; + + if ( (wret=write(1, data, size)) <= 0 ) + break; + i_stream_skip(input, wret); } printf("\n--MESSAGE--\n"); - + return SIEVE_EXEC_OK; }