]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-http: client: Set conn->connect_request to NULL immediately in http_client_connec...
authorStephan Bosch <stephan@dovecot.fi>
Sun, 11 Sep 2016 17:44:32 +0000 (19:44 +0200)
committerGitLab <gitlab@git.dovecot.net>
Wed, 2 Nov 2016 11:42:18 +0000 (13:42 +0200)
Prevents referring to this completed request in other parts of the code.

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

index c91d090daa2a8adbbc7f43b721d9ceb954c7f073..7f33b1b347dd9134dc1562a4bc21f2b391c96400 100644 (file)
@@ -1341,17 +1341,18 @@ http_client_connection_tunnel_response(const struct http_response *response,
 {
        struct http_client_tunnel tunnel;
        const char *name = http_client_peer_addr2str(&conn->peer->addr);
+       struct http_client_request *req = conn->connect_request;
+
+       conn->connect_request = NULL;
 
        if (response->status != 200) {
                http_client_peer_connection_failure(conn->peer, t_strdup_printf(
                        "Tunnel connect(%s) failed: %d %s", name,
                                response->status, response->reason));
-               conn->connect_request = NULL;
                return;
        }
 
-       http_client_request_start_tunnel(conn->connect_request, &tunnel);
-       conn->connect_request = NULL;
+       http_client_request_start_tunnel(req, &tunnel);
 
        connection_init_from_streams
                (conn->client->conn_list, &conn->conn, name, tunnel.input, tunnel.output);