From: Hugo Landau Date: Wed, 30 Nov 2022 08:01:58 +0000 (+0000) Subject: QUIC CHANNEL: Minor cleanups and bug fix X-Git-Tag: openssl-3.2.0-alpha1~1479 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e28f512f045b91d4c52b8b9f2ea0800b24203a76;p=thirdparty%2Fopenssl.git QUIC CHANNEL: Minor cleanups and bug fix Reviewed-by: Tomas Mraz Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/19703) --- diff --git a/ssl/quic/quic_channel.c b/ssl/quic/quic_channel.c index 87406f4ee35..df4ea8385dc 100644 --- a/ssl/quic/quic_channel.c +++ b/ssl/quic/quic_channel.c @@ -525,7 +525,7 @@ static int ch_on_handshake_yield_secret(uint32_t enc_level, int direction, * data. */ for (i = QUIC_ENC_LEVEL_INITIAL; i < enc_level; ++i) - if (!crypto_ensure_empty(ch->crypto_recv[i])) { + if (!crypto_ensure_empty(ch->crypto_recv[ossl_quic_enc_level_to_pn_space(i)])) { /* Protocol violation (RFC 9001 s. 4.1.3) */ ossl_quic_channel_raise_protocol_error(ch, QUIC_ERR_PROTOCOL_VIOLATION, OSSL_QUIC_FRAME_TYPE_CRYPTO, @@ -549,7 +549,7 @@ static int ch_on_handshake_complete(void *arg) { QUIC_CHANNEL *ch = arg; - if (ch->handshake_complete) + if (!ossl_assert(!ch->handshake_complete)) return 0; /* this should not happen twice */ if (!ossl_assert(ch->tx_enc_level == QUIC_ENC_LEVEL_1RTT)) @@ -1422,11 +1422,9 @@ static int ch_retry(QUIC_CHANNEL *ch, * Now we retry. We will release the Retry packet immediately, so copy * the token. */ - if ((buf = OPENSSL_malloc(retry_token_len)) == NULL) + if ((buf = OPENSSL_memdup(retry_token, retry_token_len)) == NULL) return 0; - memcpy(buf, retry_token, retry_token_len); - ossl_quic_tx_packetiser_set_initial_token(ch->txp, buf, retry_token_len, free_token, NULL);