From: Timo Sirainen Date: Sat, 25 Oct 2014 22:59:05 +0000 (+0300) Subject: lib-http server: If i/ostream fails, don't return wrong "stream input size changed... X-Git-Tag: 2.2.16.rc1~283 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3f6a3951ad15131edcdab34181dede1b5451fb97;p=thirdparty%2Fdovecot%2Fcore.git lib-http server: If i/ostream fails, don't return wrong "stream input size changed" error. Also handle the real case in a bit nicer way. --- diff --git a/src/lib-http/http-server-response.c b/src/lib-http/http-server-response.c index 835c11c875..f16a5108f9 100644 --- a/src/lib-http/http-server-response.c +++ b/src/lib-http/http-server-response.c @@ -259,10 +259,12 @@ int http_server_response_send_more(struct http_server_response *resp, } if (ret < 0 || i_stream_is_eof(resp->payload_input)) { - if (!resp->payload_chunked && - resp->payload_input->v_offset - resp->payload_offset != resp->payload_size) { - i_error("stream input size changed"); //FIXME - return -1; + if (ret >= 0 && !resp->payload_chunked && + resp->payload_input->v_offset - resp->payload_offset != resp->payload_size) { + *error_r = t_strdup_printf( + "Input stream %s size changed unexpectedly", + i_stream_get_name(resp->payload_input)); + ret = -1; } http_server_response_finish_payload_out(resp);