Hide Forgot
Thank you for the report. I confirm I can reproduce the issue. The inet_aton() function is provided by Socket Perl module and it indeed calls gethostbyname() that is not thread-safe: void inet_aton(host) char * host CODE: { struct in_addr ip_address; struct hostent * phe; if ((*host != '\0') && inet_aton(host, &ip_address)) { ST(0) = sv_2mortal(newSVpvn((char *)&ip_address, sizeof(ip_address))); XSRETURN(1); } → phe = gethostbyname(host); if (phe && phe->h_addrtype == AF_INET && phe->h_length == 4) { ST(0) = sv_2mortal(newSVpvn((char *)phe->h_addr, phe->h_length)); XSRETURN(1); } XSRETURN_UNDEF; } As a workaround I recommend using getaddrinfo() from the same Socket module instead. It's thread safe and supports IPv6. As replacement for IO:Socket::INET I recommend IO::Socket::IP instead.
Created attachment 1555175 [details] Proposed fix ported to 2.010
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2020:0997