Skip to content

Commit 17ae110

Browse files
committed
CVE-2023-40217 Try to work around Socket not being a resource in Python2
1 parent e949138 commit 17ae110

File tree

1 file changed

+14
-27
lines changed

1 file changed

+14
-27
lines changed

Lib/test/test_ssl.py

Lines changed: 14 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2266,8 +2266,7 @@ def test_crl_check(self):
22662266
server = ThreadedEchoServer(context=server_context, chatty=True)
22672267
with server:
22682268
with closing(context.wrap_socket(socket.socket())) as s:
2269-
with self.assertRaisesRegexp(ssl.SSLError,
2270-
"certificate verify failed"):
2269+
with self.assertRaisesRegexp(ssl.SSLError, "certificate verify failed"):
22712270
s.connect((HOST, server.port))
22722271

22732272
# now load a CRL file. The CRL file is signed by the CA.
@@ -2295,17 +2294,15 @@ def test_check_hostname(self):
22952294
# correct hostname should verify
22962295
server = ThreadedEchoServer(context=server_context, chatty=True)
22972296
with server:
2298-
with closing(context.wrap_socket(socket.socket(),
2299-
server_hostname="localhost")) as s:
2297+
with closing(context.wrap_socket(socket.socket(), server_hostname="localhost")) as s:
23002298
s.connect((HOST, server.port))
23012299
cert = s.getpeercert()
23022300
self.assertTrue(cert, "Can't get peer certificate.")
23032301

23042302
# incorrect hostname should raise an exception
23052303
server = ThreadedEchoServer(context=server_context, chatty=True)
23062304
with server:
2307-
with closing(context.wrap_socket(socket.socket(),
2308-
server_hostname="invalid")) as s:
2305+
with closing(context.wrap_socket(socket.socket(), server_hostname="invalid")) as s:
23092306
with self.assertRaisesRegexp(ssl.CertificateError,
23102307
"hostname 'invalid' doesn't match u?'localhost'"):
23112308
s.connect((HOST, server.port))
@@ -3282,10 +3279,9 @@ def test_pha_no_pha_client(self):
32823279

32833280
server = ThreadedEchoServer(context=server_context, chatty=False)
32843281
with server:
3285-
with client_context.wrap_socket(socket.socket(),
3286-
server_hostname=hostname) as s:
3282+
with closing (client_context.wrap_socket(socket.socket(), server_hostname=hostname)) as s:
32873283
s.connect((HOST, server.port))
3288-
with self.assertRaisesRegex(ssl.SSLError, 'not server'):
3284+
with self.assertRaisesRegexp(ssl.SSLError, 'not server'):
32893285
s.verify_client_post_handshake()
32903286
s.write(b'PHA')
32913287
self.assertIn(b'extension not received', s.recv(1024))
@@ -3299,8 +3295,7 @@ def test_pha_no_pha_server(self):
32993295

33003296
server = ThreadedEchoServer(context=server_context, chatty=False)
33013297
with server:
3302-
with client_context.wrap_socket(socket.socket(),
3303-
server_hostname=hostname) as s:
3298+
with closing(client_context.wrap_socket(socket.socket(), server_hostname=hostname)) as s:
33043299
s.connect((HOST, server.port))
33053300
s.write(b'HASCERT')
33063301
self.assertEqual(s.recv(1024), b'TRUE\n')
@@ -3346,8 +3341,7 @@ def test_bpo37428_pha_cert_none(self):
33463341

33473342
server = ThreadedEchoServer(context=server_context, chatty=False)
33483343
with server:
3349-
with client_context.wrap_socket(socket.socket(),
3350-
server_hostname=hostname) as s:
3344+
with closing(client_context.wrap_socket(socket.socket(), server_hostname=hostname)) as s:
33513345
s.connect((HOST, server.port))
33523346
s.write(b'HASCERT')
33533347
self.assertEqual(s.recv(1024), b'FALSE\n')
@@ -3400,8 +3394,7 @@ def test_keylog_filename(self):
34003394
client_context.keylog_filename = support.TESTFN
34013395
server = ThreadedEchoServer(context=server_context, chatty=False)
34023396
with server:
3403-
with client_context.wrap_socket(socket.socket(),
3404-
server_hostname=hostname) as s:
3397+
with closing(client_context.wrap_socket(socket.socket(), server_hostname=hostname)) as s:
34053398
s.connect((HOST, server.port))
34063399
# header, 5 lines for TLS 1.3
34073400
self.assertEqual(self.keylog_lines(), 6)
@@ -3410,17 +3403,15 @@ def test_keylog_filename(self):
34103403
server_context.keylog_filename = support.TESTFN
34113404
server = ThreadedEchoServer(context=server_context, chatty=False)
34123405
with server:
3413-
with client_context.wrap_socket(socket.socket(),
3414-
server_hostname=hostname) as s:
3406+
with closing(client_context.wrap_socket(socket.socket(), server_hostname=hostname)) as s:
34153407
s.connect((HOST, server.port))
34163408
self.assertGreaterEqual(self.keylog_lines(), 11)
34173409

34183410
client_context.keylog_filename = support.TESTFN
34193411
server_context.keylog_filename = support.TESTFN
34203412
server = ThreadedEchoServer(context=server_context, chatty=False)
34213413
with server:
3422-
with client_context.wrap_socket(socket.socket(),
3423-
server_hostname=hostname) as s:
3414+
with closing(client_context.wrap_socket(socket.socket(), server_hostname=hostname)) as s:
34243415
s.connect((HOST, server.port))
34253416
self.assertGreaterEqual(self.keylog_lines(), 21)
34263417

@@ -3473,8 +3464,7 @@ def msg_cb(conn, direction, version, content_type, msg_type, data):
34733464

34743465
server = ThreadedEchoServer(context=server_context, chatty=False)
34753466
with server:
3476-
with client_context.wrap_socket(socket.socket(),
3477-
server_hostname=hostname) as s:
3467+
with closing(client_context.wrap_socket(socket.socket(), server_hostname=hostname)) as s:
34783468
s.connect((HOST, server.port))
34793469

34803470
self.assertIn(
@@ -3503,11 +3493,9 @@ def sni_cb(sock, servername, ctx):
35033493

35043494
server = ThreadedEchoServer(context=server_context, chatty=False)
35053495
with server:
3506-
with client_context.wrap_socket(socket.socket(),
3507-
server_hostname=hostname) as s:
3496+
with closing(client_context.wrap_socket(socket.socket(), server_hostname=hostname)) as s:
35083497
s.connect((HOST, server.port))
3509-
with client_context.wrap_socket(socket.socket(),
3510-
server_hostname=hostname) as s:
3498+
with closing(client_context.wrap_socket(socket.socket(), server_hostname=hostname)) as s:
35113499
s.connect((HOST, server.port))
35123500

35133501

@@ -3747,8 +3735,7 @@ def test_bpo37428_pha_cert_none(self):
37473735

37483736
server = ThreadedEchoServer(context=server_context, chatty=False)
37493737
with server:
3750-
with client_context.wrap_socket(socket.socket(),
3751-
server_hostname=hostname) as s:
3738+
with closing(client_context.wrap_socket(socket.socket(), server_hostname=hostname)) as s:
37523739
s.connect((HOST, server.port))
37533740
s.write(b'HASCERT')
37543741
self.assertEqual(s.recv(1024), b'FALSE\n')

0 commit comments

Comments
 (0)