aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2020-03-16 19:32:18 +0100
committerMarc-André Lureau <marcandre.lureau@redhat.com>2020-03-16 19:32:20 +0100
commit8a18a76855f1d67fd6d4cdff30b669d235249a7a (patch)
treed8e852f5ca93907bf6c446969b73277ee92a54e1
parentd65f3030a82743bf506b0611a6a1a0358ea5d52b (diff)
downloadslirp-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>
-rw-r--r--src/socket.c8
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;