mirror of
https://github.com/openssl/openssl.git
synced 2025-01-30 14:01:55 +08:00
Don't create an ack frame if one isn't wanted for this pn_space
The txp->want_ack value has different bit values for different pn_space values. Make sure we take that into account when we read it. Fixes #22568 Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/22579)
This commit is contained in:
parent
3ffc6c644c
commit
d13488b936
@ -1786,7 +1786,7 @@ static int txp_generate_pre_token(OSSL_QUIC_TX_PACKETISER *txp,
|
|||||||
/* ACK Frames (Regenerate) */
|
/* ACK Frames (Regenerate) */
|
||||||
if (a->allow_ack
|
if (a->allow_ack
|
||||||
&& tx_helper_get_space_left(h) >= MIN_FRAME_SIZE_ACK
|
&& tx_helper_get_space_left(h) >= MIN_FRAME_SIZE_ACK
|
||||||
&& (txp->want_ack
|
&& (((txp->want_ack & (1UL << pn_space)) != 0)
|
||||||
|| ossl_ackm_is_ack_desired(txp->args.ackm, pn_space))
|
|| ossl_ackm_is_ack_desired(txp->args.ackm, pn_space))
|
||||||
&& (ack = ossl_ackm_get_ack_frame(txp->args.ackm, pn_space)) != NULL) {
|
&& (ack = ossl_ackm_get_ack_frame(txp->args.ackm, pn_space)) != NULL) {
|
||||||
WPACKET *wpkt = tx_helper_begin(h);
|
WPACKET *wpkt = tx_helper_begin(h);
|
||||||
|
Loading…
Reference in New Issue
Block a user