diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2020-03-16 19:32:18 +0100 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@redhat.com> | 2020-03-16 19:32:20 +0100 |
commit | 8a18a76855f1d67fd6d4cdff30b669d235249a7a (patch) | |
tree | d8e852f5ca93907bf6c446969b73277ee92a54e1 /src | |
parent | d65f3030a82743bf506b0611a6a1a0358ea5d52b (diff) | |
download | slirp-8a18a76855f1d67fd6d4cdff30b669d235249a7a.zip slirp-8a18a76855f1d67fd6d4cdff30b669d235249a7a.tar.gz slirp-8a18a76855f1d67fd6d4cdff30b669d235249a7a.tar.bz2 |
socket: do not fallback on host loopback if get_dns_addr() failed
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 <marcandre.lureau@redhat.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/socket.c | 8 |
1 files 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; |