BUG/MEDIUM: quic: fix FD for quic_cc_conn

Since following commit, quic_conn closes its owned socket before
transition to quic_cc_conn for closing state. This allows to save FDs as
quic_cc_conn could use the listener socket for their I/O.

  commit 150c0da8895be50a39fd8e44f1db28e52c938569
  MEDIUM: quic: release conn socket before using quic_cc_conn

This patch is incomplete as it removes initialization of <fd> member for
quic_cc_conn. Thus, if sending is done on closing state, <fd> value is
undefined which in most cases will result in a crash. Fix this by simply
initializing <fd> member with qc_init_fd() in qc_new_cc_conn().

This bug should fix recent issue from #2095. Thanks to Tristan for its
reporting and then testing of this patch.

No need to backport.
This commit is contained in:
Amaury Denoyelle 2023-11-13 11:30:36 +01:00
parent 78d244e9f7
commit 954b5b756a

View File

@ -828,6 +828,8 @@ static struct quic_cc_conn *qc_new_cc_conn(struct quic_conn *qc)
quic_conn_mv_cids_to_cc_conn(cc_qc, qc);
qc_init_fd((struct quic_conn *)cc_qc);
cc_qc->flags = qc->flags;
cc_qc->err = qc->err;