@@ -31,13 +31,13 @@ def _test_getaddrinfo(self, *args, _patch=False, **kwargs):
3131 a1 = patched_getaddrinfo (* args , ** kwargs )
3232 else :
3333 a1 = socket .getaddrinfo (* args , ** kwargs )
34- except socket .gaierror as ex :
34+ except ( socket .gaierror , UnicodeError ) as ex :
3535 err = ex
3636
3737 try :
3838 a2 = self .loop .run_until_complete (
3939 self .loop .getaddrinfo (* args , ** kwargs ))
40- except socket .gaierror as ex :
40+ except ( socket .gaierror , UnicodeError ) as ex :
4141 if err is not None :
4242 self .assertEqual (ex .args , err .args )
4343 else :
@@ -187,6 +187,18 @@ def test_getaddrinfo_20(self):
187187 self ._test_getaddrinfo ('127.0.0.1' , 80 , type = socket .SOCK_STREAM ,
188188 flags = socket .AI_CANONNAME , _patch = patch )
189189
190+ # https://github.com/libuv/libuv/security/advisories/GHSA-f74f-cvh7-c6q6
191+ # See also: https://github.com/MagicStack/uvloop/pull/600
192+ def test_getaddrinfo_21 (self ):
193+ payload = f'0x{ "0" * 246 } 7f000001.example.com' .encode ('ascii' )
194+ self ._test_getaddrinfo (payload , 80 )
195+ self ._test_getaddrinfo (payload , 80 , type = socket .SOCK_STREAM )
196+
197+ def test_getaddrinfo_22 (self ):
198+ payload = f'0x{ "0" * 246 } 7f000001.example.com'
199+ self ._test_getaddrinfo (payload , 80 )
200+ self ._test_getaddrinfo (payload , 80 , type = socket .SOCK_STREAM )
201+
190202 ######
191203
192204 def test_getnameinfo_1 (self ):
0 commit comments