This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author smejkar
Recipients smejkar
Date 2017-06-20.13:26:15
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1497965175.62.0.214450987603.issue30711@psf.upfronthosting.co.za>
In-reply-to
Content
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.
History
Date User Action Args
2017-06-20 13:26:15smejkarsetrecipients: + smejkar
2017-06-20 13:26:15smejkarsetmessageid: <1497965175.62.0.214450987603.issue30711@psf.upfronthosting.co.za>
2017-06-20 13:26:15smejkarlinkissue30711 messages
2017-06-20 13:26:15smejkarcreate