]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-http: Avoid crashes when server is already disconnected.
authorTimo Sirainen <tss@iki.fi>
Mon, 28 Sep 2015 10:53:22 +0000 (13:53 +0300)
committerTimo Sirainen <tss@iki.fi>
Mon, 28 Sep 2015 10:53:22 +0000 (13:53 +0300)
I'm not sure if this is the nicest fix, but seems to work for now at least.

src/lib-http/http-client-connection.c

index 28d134d5d825cd538e10c7157c156f342aa854ee..450ddc6f79beb808fa61a810c495effbbed28dc9 100644 (file)
@@ -551,7 +551,7 @@ http_client_connection_return_response(struct http_client_connection *conn,
                /* request is dereferenced in payload destroy callback */
                i_stream_unref(&payload);
 
-               if (conn->to_input != NULL) {
+               if (conn->to_input != NULL && conn->conn.input != NULL) {
                        /* already finished reading the payload */
                        http_client_payload_finished(conn);
                }
@@ -561,7 +561,7 @@ http_client_connection_return_response(struct http_client_connection *conn,
                http_client_request_unref(&req);
        }
 
-       if (conn->incoming_payload == NULL) {
+       if (conn->incoming_payload == NULL && conn->conn.input != NULL) {
                i_assert(conn->conn.io != NULL ||
                        conn->peer->addr.type == HTTP_CLIENT_PEER_ADDR_RAW);
                ret = TRUE;