Fix alert callback in the QUIC layer
authortb <tb@openbsd.org>
Mon, 9 Sep 2024 03:55:55 +0000 (03:55 +0000)
committertb <tb@openbsd.org>
Mon, 9 Sep 2024 03:55:55 +0000 (03:55 +0000)
commit9987920c21ebbf733268dfa52852d031be941851
tree645e4402ec1a4eeed39ca3db2f457f28ed6f2d06
parentd2b6e45e6016ad05bc8d079d97d8cdbaad3d3743
Fix alert callback in the QUIC layer

Only close_notify and user_cancelled are warning alerts. All others
should be fatal. In order for the lower layers to behave correctly,
the return code for fatal alerts needs to be TLS13_IO_ALERT instead
of TLS13_IO_SUCCESS.

Failure to signal handshake failure in the public API led to a crash
in HAProxy when forcing the tls cipher to TLS_AES_128_CCM_SHA256 as
found by haproxyfred while investigating
https://github.com/haproxy/haproxy/issues/2569

Kenjiro Nakayama found misbehavior of ngtcp2-based servers, wrote a
similar patch and tested this version.

Fixes https://github.com/libressl/portable/issues/1093

ok jsing
lib/libssl/tls13_quic.c