This bug arrived with this commit:
MINOR: quic: Remove pool_zalloc() from qc_new_conn()
Missing initialization of largest packet number received during a keyupdate phase.
This prevented the keyupdate feature from working and made the keyupdate interop
tests to fail for all the clients.
Furthermore, ->flags from quic_tls_ctx was also not initialized. This could
also impact the keyupdate feature at least.
No backport needed.
size_t ivlen;
unsigned char *key;
size_t keylen;
+ /* Used only on the RX part to store the largest received packet number */
int64_t pn;
};
ctx->rx.hp_ctx = NULL;
ctx->rx.iv = NULL;
ctx->rx.key = NULL;
+ ctx->rx.pn = 0;
ctx->tx.ctx = NULL;
ctx->tx.hp_ctx = NULL;
ctx->tx.iv = NULL;
ctx->tx.key = NULL;
+ /* Not used on the TX path. */
+ ctx->tx.pn = 0;
+
+ ctx->flags = 0;
}
/* Erase and free the secrets for a QUIC encryption level with <ctx> as