]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-http server: If i/ostream fails, don't return wrong "stream input size changed...
authorTimo Sirainen <tss@iki.fi>
Sat, 25 Oct 2014 22:59:05 +0000 (01:59 +0300)
committerTimo Sirainen <tss@iki.fi>
Sat, 25 Oct 2014 22:59:05 +0000 (01:59 +0300)
Also handle the real case in a bit nicer way.

src/lib-http/http-server-response.c

index 835c11c875b4f47d94349a7be750253c7c6a6648..f16a5108f985760106fc8575093d1230628fcc0e 100644 (file)
@@ -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);