MINOR: quic: Remove pool_zalloc() from qc_new_conn()
authorFrédéric Lécaille <flecaille@haproxy.com>
Thu, 15 Jun 2023 05:53:42 +0000 (07:53 +0200)
committerFrédéric Lécaille <flecaille@haproxy.com>
Fri, 16 Jun 2023 14:55:58 +0000 (16:55 +0200)
commitddc616933c90f743e992fd08ada6cb0fd5756d7b
tree5497565b473e075aa3e09bbfc5a3885bc6fbb9e5
parent4ae29be18c5b212dd2a1a8e9fa0ee2fcb9dbb4b3
MINOR: quic: Remove pool_zalloc() from qc_new_conn()

qc_new_conn() is ued to initialize QUIC connections with quic_conn struct objects.
This function calls quic_conn_release() when it fails to initialize a connection.
quic_conn_release() is also called to release the memory allocated by a QUIC
connection.

Replace pool_zalloc() by pool_alloc() in this function and initialize
all quic_conn struct members which are referenced by quic_conn_release() to
prevent use of non initialized variables in this fonction.
The ebtrees, the lists attached to quic_conn struct must be initialized.
The tasks must be reset to their NULL default values to be safely destroyed
by task_destroy(). This is all the case for all the TLS cipher contexts
of the encryption levels (struct quic_enc_level) and those for the keyupdate.
The packet number spaces (struct quic_pktns) must also be initialized.
->prx_counters pointer must be initialized to prevent quic_conn_prx_cntrs_update()
from dereferencing this pointer.
->latest_rtt member of quic_loss struct must also be initialized. This is done
by quic_loss_init() called by quic_path_init().
include/haproxy/quic_loss.h
include/haproxy/quic_tls.h
src/quic_conn.c