summaryrefslogtreecommitdiff
path: root/Lib/test/test_ssl.py
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2013-04-11 20:48:42 +0200
committerAntoine Pitrou <solipsis@pitrou.net>2013-04-11 20:48:42 +0200
commit50b24d0d7cc7b787acc1f8481173e5e0d536fe28 (patch)
tree7465cab4d1a418ce907c6d60aafd3ba9376aa529 /Lib/test/test_ssl.py
parent85b2afb1b1f3e24b1ecddfc955b5d4614fc6f39e (diff)
downloadcpython-git-50b24d0d7cc7b787acc1f8481173e5e0d536fe28.tar.gz
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)
Diffstat (limited to 'Lib/test/test_ssl.py')
-rw-r--r--Lib/test/test_ssl.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
index 408033e242..1f0f62ab80 100644
--- 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))
- ssl_sock.context = other_context
+ if server_name is not None:
+ ssl_sock.context = other_context
server_context.set_servername_callback(servername_cb)
stats = server_params_test(client_context, server_context,
@@ -2108,6 +2109,14 @@ else:
# CERTFILE4 was selected
self.check_common_name(stats, 'fakehostname')
+ calls = []
+ # The callback is called with server_name=None
+ stats = server_params_test(client_context, server_context,
+ chatty=True,
+ sni_name=None)
+ self.assertEqual(calls, [(None, server_context)])
+ self.check_common_name(stats, 'localhost')
+
# Check disabling the callback
calls = []
server_context.set_servername_callback(None)