esp_http_server, protocomm: Consider a connection as closed if recv() returns 0

This check prevents infinite loop on closed sockets

Closes https://github.com/espressif/esp-idf/pull/6541

Signed-off-by: Shubham Kulkarni <shubham.kulkarni@espressif.com>
This commit is contained in:
Siarhei Volkau
2021-03-15 19:36:57 +05:30
committed by bot
parent b94c61497d
commit ba15970abb
2 changed files with 2 additions and 2 deletions

View File

@@ -802,7 +802,7 @@ esp_err_t httpd_req_delete(struct httpd_data *hd)
char dummy[CONFIG_HTTPD_PURGE_BUF_LEN];
int recv_len = MIN(sizeof(dummy), ra->remaining_len);
recv_len = httpd_req_recv(r, dummy, recv_len);
if (recv_len < 0) {
if (recv_len <= 0) {
httpd_req_cleanup(r);
return ESP_FAIL;
}

View File

@@ -136,7 +136,7 @@ static esp_err_t common_post_handler(httpd_req_t *req)
size_t recv_size = 0;
while (recv_size < req->content_len) {
ret = httpd_req_recv(req, req_body + recv_size, req->content_len - recv_size);
if (ret < 0) {
if (ret <= 0) {
ret = ESP_FAIL;
goto out;
}