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:30:57 +0000 (09:30 +0000)
commit64193c8218540499984cd63cda41f3cd491f3f59
tree30a2105e654f9ccdaaf4844c1a1e7f659267a271
parent402fb1896b2aab5cf887127bbce964554b9c8113
Handle SSL_shutdown while in init more appropriately #2

Previous commit f73c737c7 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 f73c737c7 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>
ssl/s3_lib.c
ssl/ssl.h
ssl/ssl_err.c
ssl/ssl_lib.c