cpython: 4ae6095b4638 (original) (raw)

Mercurial > cpython

changeset 83251:4ae6095b4638

Fix a crash when setting a servername callback on a SSL server socket and the client doesn't send a server name. Patch by Kazuhiro Yoshida. (originally issue #8109) [#8109]

Antoine Pitrou solipsis@pitrou.net
date Thu, 11 Apr 2013 20:48:42 +0200
parents 6cc56e21a74d
children 1c794d713e70
files Doc/library/ssl.rst Lib/test/test_ssl.py Misc/ACKS Modules/_ssl.c
diffstat 4 files changed, 30 insertions(+), 13 deletions(-)[+] [-] Doc/library/ssl.rst 1 Lib/test/test_ssl.py 11 Misc/ACKS 1 Modules/_ssl.c 30

line wrap: on

line diff

--- a/Doc/library/ssl.rst +++ b/Doc/library/ssl.rst @@ -842,6 +842,7 @@ to speed up repeated connections from th The callback function, server_name_callback, will be called with three arguments; the first being the :class:ssl.SSLSocket, the second is a string that represents the server name that the client is intending to communicate

--- a/Lib/test/test_ssl.py +++ b/Lib/test/test_ssl.py @@ -2096,7 +2096,8 @@ else: def servername_cb(ssl_sock, server_name, initial_context): calls.append((server_name, initial_context))

stats = server_params_test(client_context, server_context, @@ -2108,6 +2109,14 @@ else: # CERTFILE4 was selected self.check_common_name(stats, 'fakehostname')

+ # Check disabling the callback calls = [] server_context.set_servername_callback(None)

--- a/Misc/ACKS +++ b/Misc/ACKS @@ -1361,6 +1361,7 @@ Bob Yodlowski Danny Yoo Rory Yorke George Yoshida +Kazuhiro Yoshida Masazumi Yoshikawa Arnaud Ysmal Bernard Yue

--- a/Modules/_ssl.c +++ b/Modules/_ssl.c @@ -2448,22 +2448,28 @@ static int goto error; }

if (result == NULL) { PyErr_WriteUnraisable(ssl_ctx->set_hostname);