Switch to legacy method late in tls13_use_legacy_stack()
authortb <tb@openbsd.org>
Tue, 28 Nov 2023 13:19:04 +0000 (13:19 +0000)
committertb <tb@openbsd.org>
Tue, 28 Nov 2023 13:19:04 +0000 (13:19 +0000)
commitdd7d88cbe18508044063c2e8302f53f87ee7e90d
tree205e4e3cd0fae37130e1c23e64afc8b1464c9b63
parentbeb6838fd0672171f4e3433e59ead856aa4a59c9
Switch to legacy method late in tls13_use_legacy_stack()

If memory allocation of s->init_buf fails in ssl3_setup_init_buffer()
during downgrade to the legacy stack, the legacy state machine would
resume with an incorrectly set up SSL, resulting in a NULL dereference.
The fix is to switch to the legacy method only after the SSL is fully
set up. There is a second part to this fix, which will be committed
once we manage to agree on the color of the bikeshed.

Detailed analysis and patch from Masaru Masuda, many thanks!
https://github.com/libressl/openbsd/issues/146

ok jsing
lib/libssl/tls13_legacy.c