]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-http: Don't double-free request memory when aborting them.
authorTimo Sirainen <tss@iki.fi>
Wed, 10 Apr 2013 15:00:12 +0000 (18:00 +0300)
committerTimo Sirainen <tss@iki.fi>
Wed, 10 Apr 2013 15:00:12 +0000 (18:00 +0300)
src/lib-http/http-client-connection.c

index b2296634b2856bef04da33eef19976531974e3bc..bf0d80a58cb8e8bddcb8b95a1dacf26bea61f5af 100644 (file)
@@ -107,9 +107,9 @@ http_client_connection_abort_error(struct http_client_connection **_conn,
        conn->closing = TRUE;
        
        array_foreach_modifiable(&conn->request_wait_list, req) {
+               i_assert((*req)->submitted);
                http_client_request_error(*req, status, error);
-               http_client_request_unref(req);
-       }       
+       }
        array_clear(&conn->request_wait_list);
        http_client_connection_unref(_conn);
 }
@@ -819,9 +819,9 @@ void http_client_connection_unref(struct http_client_connection **_conn)
 
        /* abort all pending requests */
        array_foreach_modifiable(&conn->request_wait_list, req) {
+               i_assert((*req)->submitted);
                http_client_request_error(*req, HTTP_CLIENT_REQUEST_ERROR_ABORTED,
                        "Aborting");
-               http_client_request_unref(req);
        }
        array_free(&conn->request_wait_list);