diff options
author | tb <> | 2020-08-17 11:04:20 +0000 |
---|---|---|
committer | tb <> | 2020-08-17 11:04:20 +0000 |
commit | 3b56f0265346ac27187ab1c0aa41bc27260bea5b (patch) | |
tree | da87998cce511059ab0f7f6b0a919f61f5531fd7 | |
parent | 5a715e5d56517275cd64092796fb2595209eb962 (diff) | |
download | openbsd-3b56f0265346ac27187ab1c0aa41bc27260bea5b.tar.gz openbsd-3b56f0265346ac27187ab1c0aa41bc27260bea5b.tar.bz2 openbsd-3b56f0265346ac27187ab1c0aa41bc27260bea5b.zip |
Unbreak bidirectional SSL_shutdown for TLSv1.3libressl-v3.1.4
The previous errata patch 019_libssl broke bidirectional SSL_shutdown.
This can cause a hang in some software that calls SSL_shutdown in a loop.
Problem reported and fix tested by Predrag Punosevac. Thanks to Steffen
Nurpmeso who independently found that this was due to an SSL_shutdown loop.
ok jsing
This is errata/6.7/020_libssl.patch.sig
-rw-r--r-- | src/lib/libssl/tls13_legacy.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lib/libssl/tls13_legacy.c b/src/lib/libssl/tls13_legacy.c index 95e9032634..5d32c66726 100644 --- a/src/lib/libssl/tls13_legacy.c +++ b/src/lib/libssl/tls13_legacy.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: tls13_legacy.c,v 1.3.4.2 2020/08/10 18:59:47 tb Exp $ */ | 1 | /* $OpenBSD: tls13_legacy.c,v 1.3.4.3 2020/08/17 11:04:20 tb Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2018, 2019 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2018, 2019 Joel Sing <jsing@openbsd.org> |
4 | * | 4 | * |
@@ -497,6 +497,7 @@ tls13_legacy_shutdown(SSL *ssl) | |||
497 | if ((ret = tls13_record_layer_send_pending(ctx->rl)) != | 497 | if ((ret = tls13_record_layer_send_pending(ctx->rl)) != |
498 | TLS13_IO_SUCCESS) | 498 | TLS13_IO_SUCCESS) |
499 | return tls13_legacy_return_code(ssl, ret); | 499 | return tls13_legacy_return_code(ssl, ret); |
500 | ctx->close_notify_sent = 1; | ||
500 | } else if (!ctx->close_notify_recv) { | 501 | } else if (!ctx->close_notify_recv) { |
501 | /* | 502 | /* |
502 | * If there is no application data pending, attempt to read more | 503 | * If there is no application data pending, attempt to read more |