diff --git a/components/esp_http_client/esp_http_client.c b/components/esp_http_client/esp_http_client.c index 94aa1d6c73..4283828645 100644 --- a/components/esp_http_client/esp_http_client.c +++ b/components/esp_http_client/esp_http_client.c @@ -520,6 +520,12 @@ static esp_err_t esp_http_client_prepare(esp_http_client_handle_t client) client->process_again = 0; client->response->data_process = 0; client->first_line_prepared = false; + /** + * Clear location field before making a new HTTP request. Location + * field should not be cleared in http_on_header* callbacks because + * callbacks can be invoked multiple times for same header, and + * hence can lead to data corruption. + */ if (client->location != NULL) { free(client->location); client->location = NULL;