aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/slirp.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/slirp.c b/src/slirp.c
index e920b43..c04d645 100644
--- a/src/slirp.c
+++ b/src/slirp.c
@@ -1165,6 +1165,14 @@ int slirp_add_ipv6_hostfwd(Slirp *slirp, int is_udp,
struct in6_addr host_addr, int host_port,
struct in6_addr guest_addr, int guest_port)
{
+ /*
+ * Libslirp currently only provides a stateless DHCPv6 server, thus we
+ * can't translate "addr-any" to the guest. Instead, for now, reject it.
+ */
+ if (in6_zero(&guest_addr)) {
+ return -1;
+ }
+
if (is_udp) {
if (!udp6_listen(slirp, host_addr, htons(host_port),
guest_addr, htons(guest_port), SS_HOSTFWD))