From e3cc3a302651e905209b96e07203d03cf7e46ccb Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Mon, 13 Feb 2017 11:12:29 +0100 Subject: [PATCH] BUG/MAJOR: ssl: fix a regression in ssl_sock_shutw() Commit 405ff31 ("BUG/MINOR: ssl: assert on SSL_set_shutdown with BoringSSL") introduced a regression causing some random crashes apparently due to memory corruption. The issue is the use of SSL_CTX_set_quiet_shutdown() instead of SSL_set_quiet_shutdown(), making it use a different structure and causing the flag to be put who-knows-where. Many thanks to Jarno Huuskonen who reported this bug early and who bisected the issue to spot this patch. No backport is needed, this is 1.8-specific. --- src/ssl_sock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ssl_sock.c b/src/ssl_sock.c index 232a4970f..e7eb5df3a 100644 --- a/src/ssl_sock.c +++ b/src/ssl_sock.c @@ -4177,7 +4177,7 @@ static void ssl_sock_shutw(struct connection *conn, int clean) return; if (!clean) /* don't sent notify on SSL_shutdown */ - SSL_CTX_set_quiet_shutdown(conn->xprt_ctx, 1); + SSL_set_quiet_shutdown(conn->xprt_ctx, 1); /* no handshake was in progress, try a clean ssl shutdown */ if (SSL_shutdown(conn->xprt_ctx) <= 0) { /* Clear openssl global errors stack */