From 559addbcf0807fcf5f9ec664d96bc4c8faa2d850 Mon Sep 17 00:00:00 2001 From: Nicholas Ngai Date: Tue, 12 Oct 2021 17:55:30 -0700 Subject: socket: Check address family for Unix-to-inet accept translation Signed-off-by: Nicholas Ngai --- src/socket.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/socket.c b/src/socket.c index e423875..c24fe28 100644 --- a/src/socket.c +++ b/src/socket.c @@ -1064,9 +1064,17 @@ void sotranslate_accept(struct socket *so) case AF_UNIX: /* Translate Unix socket to random ephemeral source port. */ - so->so_ffamily = AF_INET; - so->so_faddr = slirp->vhost_addr; - so->so_fport = g_rand_int_range(slirp->grand, 49152, 65536); + if (so->slirp->in_enabled) { + so->so_ffamily = AF_INET; + so->so_faddr = slirp->vhost_addr; + so->so_fport = g_rand_int_range(slirp->grand, 49152, 65536); + } else if (so->slirp->in6_enabled) { + so->so_ffamily = AF_INET6; + so->so_faddr6 = slirp->vhost_addr6; + so->so_fport6 = g_rand_int_range(slirp->grand, 49152, 65536); + } else { + g_assert_not_reached(); + } break; default: -- cgit v1.1