BUG/MINOR: quic: Wrong encryption level flags checking
This bug arrived with this commit which was supposed to fix another one: BUG/MINOR: quic: Wrong Application encryption level selection when probing The aim of this patch was to prevent the Application encryption to be selected when probing leading to ACK only packets to be sent if the ack delay timer had fired in the meantime, leading to crashes when no 01-RTT had been sent because the ack range tree is empty in this case. This statement is not correct (qc->pktns->flags & QUIC_FL_PKTNS_PROBE_NEEDED) because qc->pktns is an array of packet number space. But it is equivalent to (qc->pktns[QUIC_TLS_PKTNS_INITIAL].flags & QUIC_FL_PKTNS_PROBE_NEEDED). That said, the patch mentionned above is not more useful since this following which disable the ack time during the handshakes: BUG/MINOR: quic: Do not use ack delay during the handshakes This commit revert the first patch mentionned above. Must be backported as far as 2.6.
This commit is contained in:
parent
0c9ff0cde4
commit
9b1f91fde8
@ -3720,19 +3720,9 @@ static int qc_prep_pkts(struct quic_conn *qc, struct buffer *buf,
|
||||
*/
|
||||
if ((tel == QUIC_TLS_ENC_LEVEL_INITIAL || tel == QUIC_TLS_ENC_LEVEL_HANDSHAKE) &&
|
||||
next_tel != QUIC_TLS_ENC_LEVEL_NONE && (LIST_ISEMPTY(frms))) {
|
||||
/* If QUIC_TLS_ENC_LEVEL_HANDSHAKE was already reached let's try
|
||||
* QUIC_TLS_ENC_LEVEL_APP except if the connection was probing.
|
||||
*/
|
||||
if (tel == QUIC_TLS_ENC_LEVEL_HANDSHAKE && next_tel == tel) {
|
||||
if ((qc->pktns->flags & QUIC_FL_PKTNS_PROBE_NEEDED)) {
|
||||
TRACE_PROTO("skip APP enc. level", QUIC_EV_CONN_PHPKTS, qc);
|
||||
qc_txb_store(buf, dglen, first_pkt);
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* If QUIC_TLS_ENC_LEVEL_HANDSHAKE was already reached let's try QUIC_TLS_ENC_LEVEL_APP */
|
||||
if (tel == QUIC_TLS_ENC_LEVEL_HANDSHAKE && next_tel == tel)
|
||||
next_tel = QUIC_TLS_ENC_LEVEL_APP;
|
||||
}
|
||||
|
||||
tel = next_tel;
|
||||
if (tel == QUIC_TLS_ENC_LEVEL_APP)
|
||||
frms = &qc->els[tel].pktns->tx.frms;
|
||||
|
Loading…
Reference in New Issue
Block a user