Merge branch 'bugfix/ws_head_buf_size_v5.4' into 'release/v5.4'

fix(tcp_transport): Fix websocket header read to handle overflow (v5.4)

See merge request espressif/esp-idf!35667
This commit is contained in:
Jiang Jiang Jian
2025-01-07 10:49:25 +08:00

View File

@ -293,7 +293,12 @@ static int ws_connect(esp_transport_handle_t t, const char *host, int port, int
ws->buffer_len = header_len;
ws->buffer[header_len] = '\0'; // We will mark the end of the header to ensure that strstr operations for parsing the headers don't fail.
ESP_LOGD(TAG, "Read header chunk %d, current header size: %d", len, header_len);
} while (NULL == strstr(ws->buffer, delimiter) && header_len < WS_BUFFER_SIZE);
} while (NULL == strstr(ws->buffer, delimiter) && header_len < WS_BUFFER_SIZE - 1);
if (header_len >= WS_BUFFER_SIZE - 1) {
ESP_LOGE(TAG, "Header size exceeded buffer size");
return -1;
}
char* delim_ptr = strstr(ws->buffer, delimiter);