Fix handshake hole assert failed and coredump (#479)

Co-authored-by: wangfuyu <ivanfywang@gmail.com>
This commit is contained in:
wangfuyu 2023-10-07 22:02:56 +08:00 committed by GitHub
parent 8890b98bb0
commit 95bc8f9663
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 1 deletions

View File

@ -1055,7 +1055,11 @@ continue_handshake (struct mini_conn *mc)
*/
TAILQ_FOREACH(packet_in, &mc->mc_packets_in, pi_next)
{
assert(n_hsk_chunks < sizeof(hsk_chunks) / sizeof(hsk_chunks[0]));
if (n_hsk_chunks >= sizeof(hsk_chunks) / sizeof(hsk_chunks[0])) {
LSQ_WARN("too many handshake packets");
return -1;
}
if (0 == (packet_in->pi_flags & PI_HSK_STREAM))
continue;
s = parse_frame(packet_in->pi_data + packet_in->pi_hsk_stream,