From c0590f5b50556ae4decf237aa8715375096a2402 Mon Sep 17 00:00:00 2001 From: Christopher Durand Date: Mon, 27 Jan 2025 11:45:34 +0100 Subject: [PATCH] fix(esp_http_client): Fix invalid content length header In case a request with no content is sent after one with the content length header set the header of the previous request is sent with the subsequent one. For instance, an empty GET request after a PUT request will still indicate the non-zero content length of the previous request. This is fixed by clearing the content length header when it shouldn't be set. --- components/esp_http_client/esp_http_client.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/components/esp_http_client/esp_http_client.c b/components/esp_http_client/esp_http_client.c index 9ed66e02bef5..9e3311351eba 100644 --- a/components/esp_http_client/esp_http_client.c +++ b/components/esp_http_client/esp_http_client.c @@ -1587,6 +1587,8 @@ static int http_client_prepare_first_line(esp_http_client_handle_t client, int w client->connection_info.method != HTTP_METHOD_DELETE); if (write_len != 0 || length_required) { http_header_set_format(client->request->headers, "Content-Length", "%d", write_len); + } else { + http_header_delete(client->request->headers, "Content-Length"); } } else { esp_http_client_set_header(client, "Transfer-Encoding", "chunked");