From 36e6c8aa4bae96ed7d4d085a8d1fcce51f668dcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20L=C3=A9caille?= Date: Fri, 30 Jun 2023 18:37:18 +0200 Subject: [PATCH] BUILD: quic: Add a DISGUISE() to please some compiler to qc_prep_hpkts() 1st parameter Some compiler could complain with such a warning: src/quic_conn.c:3700:44: warning: potential null pointer dereference [-Wnull-dereference] 3700 | frms = &qel->pktns->tx.frms; It could not figure out that could not be NULL at this location. This is fixed calling qc_prep_hpkts() with a disguise 1st parameter. --- src/quic_conn.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/quic_conn.c b/src/quic_conn.c index a20feeaa0..c205c351e 100644 --- a/src/quic_conn.c +++ b/src/quic_conn.c @@ -3696,6 +3696,9 @@ static int qc_prep_pkts(struct quic_conn *qc, struct buffer *buf, next_tel = QUIC_TLS_ENC_LEVEL_APP; tel = next_tel; qel = qc_quic_enc_level(qc, tel); + /* Note that we cannot NULL as value for when for the Application + * data encryption level. Furthermore this encryption is never released. + */ if (tel == QUIC_TLS_ENC_LEVEL_APP) frms = &qel->pktns->tx.frms; else @@ -5164,7 +5167,7 @@ struct task *quic_conn_io_cb(struct task *t, void *context, unsigned int state) b_reset(buf); ret = qc_prep_hpkts(qc, buf, - qc_quic_enc_level(qc, tel), + DISGUISE(qc_quic_enc_level(qc, tel)), qc_quic_enc_level(qc, next_tel)); if (ret == -1) { qc_txb_release(qc);