From 95bc8f96639bb1f7bf480489889a1c7ab06363a8 Mon Sep 17 00:00:00 2001 From: wangfuyu Date: Sat, 7 Oct 2023 22:02:56 +0800 Subject: [PATCH] Fix handshake hole assert failed and coredump (#479) Co-authored-by: wangfuyu --- src/liblsquic/lsquic_mini_conn.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/liblsquic/lsquic_mini_conn.c b/src/liblsquic/lsquic_mini_conn.c index c7c22ac..dbc99ee 100644 --- a/src/liblsquic/lsquic_mini_conn.c +++ b/src/liblsquic/lsquic_mini_conn.c @@ -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,