From 8a18a76855f1d67fd6d4cdff30b669d235249a7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Mon, 16 Mar 2020 19:32:18 +0100 Subject: socket: do not fallback on host loopback if get_dns_addr() failed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Somewhat related to #16, but not as restrictive. (imho, it should be possible to access any port on the given DNS IP, not just 53) Signed-off-by: Marc-André Lureau --- src/socket.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/socket.c b/src/socket.c index a354616..cb1684a 100644 --- a/src/socket.c +++ b/src/socket.c @@ -824,9 +824,7 @@ static bool sotranslate_out4(Slirp *s, struct socket *so, struct sockaddr_in *si if ((so->so_faddr.s_addr & s->vnetwork_mask.s_addr) == s->vnetwork_addr.s_addr) { if (so->so_faddr.s_addr == s->vnameserver_addr.s_addr) { - if (get_dns_addr(&sin->sin_addr) >= 0) { - return true; - } + return get_dns_addr(&sin->sin_addr) >= 0; } if (s->disable_host_loopback) { return false; @@ -845,9 +843,7 @@ static bool sotranslate_out6(Slirp *s, struct socket *so, struct sockaddr_in6 *s { if (in6_equal_net(&so->so_faddr6, &s->vprefix_addr6, s->vprefix_len)) { if (in6_equal(&so->so_faddr6, &s->vnameserver_addr6)) { - if (get_dns6_addr(&sin->sin6_addr, &sin->sin6_scope_id) >= 0) { - return true; - } + return get_dns6_addr(&sin->sin6_addr, &sin->sin6_scope_id) >= 0; } if (s->disable_host_loopback) { return false; -- cgit v1.1