From: Frédéric Lécaille Date: Fri, 30 Jun 2023 16:37:18 +0000 (+0200) Subject: BUILD: quic: Add a DISGUISE() to please some compiler to qc_prep_hpkts() 1st parameter X-Git-Tag: v2.9-dev1~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=36e6c8aa4bae96ed7d4d085a8d1fcce51f668dcb;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/quic_conn.c b/src/quic_conn.c index a20feeaa0b..c205c351ee 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);