MINOR: quic: Wrong Initial packet connection initialization

->qc (QUIC connection) member of packet structure were badly initialized
when received as second Initial packet (from picoquic -Q for instance).
This leaded to corrupt the quic_conn structure with random behaviors
as size effects. This bug came with this commit:
   "MINOR: quic: Possible wrong connection identification"
This commit is contained in:
Frédéric Lécaille 2021-11-15 16:21:40 +01:00
parent ca98a7f9c0
commit f67b35620e

View File

@ -3759,9 +3759,9 @@ static ssize_t qc_lstnr_pkt_rcv(unsigned char **buf, const unsigned char *end,
}
HA_RWLOCK_WRUNLOCK(QUIC_LOCK, &l->rx.cids_lock);
pkt->qc = qc;
if (n == &qc->odcid_node) {
/* Enqueue this packet. */
pkt->qc = qc;
MT_LIST_APPEND(&l->rx.pkts, &pkt->rx_list);
/* Try to accept a new connection. */
listener_accept(l);
@ -3769,6 +3769,7 @@ static ssize_t qc_lstnr_pkt_rcv(unsigned char **buf, const unsigned char *end,
else {
quic_conn_free(qc);
qc = ebmb_entry(n, struct quic_conn, odcid_node);
pkt->qc = qc;
}
/* This is the DCID node sent in this packet by the client. */