MINOR: quic: Missing encryption level rx.crypto member initialization and lock.

->rx.crypto member of quic_enc_level struct was not initialized as
this was done for all other members of this structure. This patch
fixes this.
Also adds a RW lock for the frame of this member.
This commit is contained in:
Frédéric Lécaille 2021-07-26 16:23:53 +02:00 committed by Amaury Denoyelle
parent 01abc4612b
commit 9054d1b564
2 changed files with 6 additions and 1 deletions

View File

@ -544,7 +544,9 @@ struct quic_enc_level {
/* Crypto frames */
struct {
uint64_t offset;
struct eb_root frms; /* XXX TO CHECK XXX */
struct eb_root frms;
/* <frms> must be protected from concurrent accesses */
__decl_thread(HA_RWLOCK_T frms_rwlock);
} crypto;
} rx;
struct {

View File

@ -2719,6 +2719,9 @@ static int quic_conn_enc_level_init(struct quic_conn *qc,
qel->rx.pkts = EB_ROOT;
HA_RWLOCK_INIT(&qel->rx.rwlock);
MT_LIST_INIT(&qel->rx.pqpkts);
qel->rx.crypto.offset = 0;
qel->rx.crypto.frms = EB_ROOT_UNIQUE;
HA_RWLOCK_INIT(&qel->rx.crypto.frms_rwlock);
/* Allocate only one buffer. */
qel->tx.crypto.bufs = malloc(sizeof *qel->tx.crypto.bufs);