diff --git a/src/liblsquic/lsquic_handshake.c b/src/liblsquic/lsquic_handshake.c index b78d0d2..8302943 100644 --- a/src/liblsquic/lsquic_handshake.c +++ b/src/liblsquic/lsquic_handshake.c @@ -1143,15 +1143,15 @@ static int parse_hs_data (struct lsquic_enc_session *enc_session, uint32_t tag, break; case QTAG_SCID: - if (len != SCID_LENGTH) + if (len < SCID_LENGTH) return -1; if (is_client) { - memcpy(enc_session->info->sscid, val, len); + memcpy(enc_session->info->sscid, val, SCID_LENGTH); } else { - memcpy(hs_ctx->scid, val, len); + memcpy(hs_ctx->scid, val, SCID_LENGTH); hs_ctx->set |= HSET_SCID; } ESHIST_APPEND(enc_session, ESHE_SET_SCID);