You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Some getaddrinfo implementations do not detect invalid numeric services and blindly pass the port number to htons(). For example, service "960179" is returned as port 42675.
The configure script should detect whether the system getaddrinfo is broken. If so, a wrapper that checks numeric services, and returns EAI_SERVICE or calls the system getaddrinfo should be used in place of the system getaddrinfo.
Activity
smejkar commentedon Jun 20, 2017
Some getaddrinfo implementations do not detect invalid numeric services and blindly pass the port number to htons(). For example, service "960179" is returned as port 42675.
glibc
https://sourceware.org/bugzilla/show_bug.cgi?id=16208
https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/posix/getaddrinfo.c;h=a8bdd9a1829409bd797637b2c4fca4d67a11012d;hb=HEAD#l435
https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/posix/getaddrinfo.c;h=a8bdd9a1829409bd797637b2c4fca4d67a11012d;hb=HEAD#l2313
AIX 7.1 libc
Broken
Modules/getaddrinfo
https://github.com/python/cpython/blob/master/Modules/getaddrinfo.c#L342
On the other hand, for example, OpenBSD and musl check the port range
https://github.com/openbsd/src/blob/master/lib/libc/asr/getaddrinfo_async.c#L477
https://git.musl-libc.org/cgit/musl/tree/src/network/lookup_serv.c#n53
Modules/getaddrinfo should be fixed.
The configure script should detect whether the system getaddrinfo is broken. If so, a wrapper that checks numeric services, and returns EAI_SERVICE or calls the system getaddrinfo should be used in place of the system getaddrinfo.
smejkar commentedon Jun 23, 2017
See also bpo-30710.
smejkar commentedon Jun 27, 2017
See also bpo-30786.