Server side QUIC early data issue
Client side early data is fixed by #1216 (closed) and it works great. For server side, if GnuTLS QUIC server receives early data indication and session ticket, it crashes at: https://gitlab.com/gnutls/gnutls/-/blob/e899e3200ffb3d7d8958cfa7685052a66ebfbf80/lib/handshake.c#L799
Reproduction steps:
- Build examples/gtlsserver and examples/gtlsclient from https://github.com/ngtcp2/ngtcp2/tree/gnutls-exp (which requires the latest unreleased GnuTLS).
- Run server by
examples/gtlsserver 127.0.0.1 4433 /path/to/key /path/to/cert
- Remove session.txt file if it exists.
- Run client by
examples/gtlsclient 127.0.0.1 4433 https://127.0.0.1:4433 --session-file session.txt --tp-file tp.txt
just once. This writes session parameters in session.txt. - Run client again with the same arguments above.
- Observe server crashes.