# For compatibility
self.assertEqual(cm.exception.errno, ssl.SSL_ERROR_WANT_READ)
+ def test_bad_idna_in_server_hostname(self):
+ # Note: this test is testing some code that probably shouldn't exist
+ # in the first place, so if it starts failing at some point because
+ # you made the ssl module stop doing IDNA decoding then please feel
+ # free to remove it. The test was mainly added because this case used
+ # to cause memory corruption (see bpo-30594).
+ ctx = ssl.create_default_context()
+ with self.assertRaises(UnicodeError):
+ ctx.wrap_bio(ssl.MemoryBIO(), ssl.MemoryBIO(),
+ server_hostname="xn--.com")
class MemoryBIOTests(unittest.TestCase):