Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210430001301.GW2546@brightrain.aerifal.cx>
Date: Thu, 29 Apr 2021 20:13:03 -0400
From: Rich Felker <dalias@...c.org>
To: Bob Richmond <robert.richmond@...enwavesystems.com>
Cc: musl@...ts.openwall.com
Subject: Re: 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

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.