From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 5019 invoked from network); 30 Apr 2021 00:13:19 -0000 Received: from mother.openwall.net (195.42.179.200) by inbox.vuxu.org with ESMTPUTF8; 30 Apr 2021 00:13:19 -0000 Received: (qmail 9427 invoked by uid 550); 30 Apr 2021 00:13:16 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 9407 invoked from network); 30 Apr 2021 00:13:15 -0000 Date: Thu, 29 Apr 2021 20:13:03 -0400 From: Rich Felker To: Bob Richmond Cc: musl@lists.openwall.com Message-ID: <20210430001301.GW2546@brightrain.aerifal.cx> References: <3b4d958a-f00e-564a-7715-c92d7592ce3f@greenwavesystems.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3b4d958a-f00e-564a-7715-c92d7592ce3f@greenwavesystems.com> User-Agent: Mutt/1.5.21 (2010-09-15) Subject: Re: [musl] getaddrinfo/AI_ADDRCONFIG with ipv6 disabled On Wed, Dec 04, 2019 at 06:44:29PM -0800, Bob Richmond wrote: > connect() to the IPv6 loopback address can fail with EACCES on Linux > if IPv6 is disabled on the lo interface, and causes getaddrinfo to > fail without returning IPv4 addresses. It should be treated as if > IPv6 is disabled. > > echo 1 >/proc/sys/net/ipv6/conf/lo/disable_ipv6 > > struct addrinfo hints, *res = NULL; > hints.ai_family = PF_UNSPEC; > hints.ai_flags = AI_ADDRCONFIG; > getaddrinfo("192.168.1.1", "80", &hints, &res); > > strace: > ======start======= > socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC, IPPROTO_UDP) = 14 > connect(14, {sa_family=AF_INET, sin_port=htons(65535), > sin_addr=inet_addr("127.0.0.1")}, 16) = 0 > close(14) = 0 > > socket(AF_INET6, SOCK_DGRAM|SOCK_CLOEXEC, IPPROTO_UDP) = 14 > > connect(14, {sa_family=AF_INET6, sin6_port=htons(65535), > inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=htonl(0), > sin6_scope_id=0}, 28) = -1 EACCES (Permission denied) > close(14) = 0 > writev(2, [{iov_base="[warn] getaddrinfo: Permission denied\n", > iov_len=38}, {iov_base=NULL, iov_len=0}], 2) = 38 > ======end========= > --- musl-1.1.24/src/network/getaddrinfo.c 2019-10-13 14:58:27.000000000 -0700 > +++ musl-1.1.24/src/network/getaddrinfo.c 2019-12-04 14:52:11.003784091 -0800 > @@ -76,6 +76,7 @@ > case EHOSTUNREACH: > case ENETDOWN: > case ENETUNREACH: > + case EACCES: > break; > default: > return EAI_SYSTEM; This patch was overlooked at the time, and another user just stopped by #musl to ask why it wasn't applied. I'm going to go ahead and apply it now. Sorry for the long delay! Rich