Handle SSL_shutdown while in init more appropriately #2
authorMatt Caswell <matt@openssl.org>
Tue, 2 Feb 2016 10:05:43 +0000 (10:05 +0000)
committerMatt Caswell <matt@openssl.org>
Mon, 8 Feb 2016 09:29:29 +0000 (09:29 +0000)
commit64f9f40696f993406e53c16d7c9d815004afd8ad
treec743ac4b05506b4fc7dd01cc72b01172322aba88
parenta173a7ee3f51af71c27490247f9a65ff03553e2c
Handle SSL_shutdown while in init more appropriately #2

Previous commit 7bb196a71 attempted to "fix" a problem with the way
SSL_shutdown() behaved whilst in mid-handshake. The original behaviour had
SSL_shutdown() return immediately having taken no action if called mid-
handshake with a return value of 1 (meaning everything was shutdown
successfully). In fact the shutdown has not been successful.

Commit 7bb196a71 changed that to send a close_notify anyway and then
return. This seems to be causing some problems for some applications so
perhaps a better (much simpler) approach is revert to the previous
behaviour (no attempt at a shutdown), but return -1 (meaning the shutdown
was not successful).

This also fixes a bug where SSL_shutdown always returns 0 when shutdown
*very* early in the handshake (i.e. we are still using SSLv23_method).

Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
include/openssl/ssl.h
ssl/s3_lib.c
ssl/ssl_err.c
ssl/ssl_lib.c