aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2021-02-16 20:42:02 +0000
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2021-02-16 20:42:02 +0000
commit26ae658a83eeca16780cf5615c8247cbb151c3fa (patch)
treefc693c08f8cd25be360a37d34ecf89d845aa67fc
parent5aa333e79b9892af9bf9621435d52cd058544d18 (diff)
parentb55df476b438c2c55108f8e3f86e9490545e403d (diff)
downloadslirp-26ae658a83eeca16780cf5615c8247cbb151c3fa.zip
slirp-26ae658a83eeca16780cf5615c8247cbb151c3fa.tar.gz
slirp-26ae658a83eeca16780cf5615c8247cbb151c3fa.tar.bz2
Merge branch 'reject-ipv6-addr-any' into 'master'
Reject host forwarding to ipv6 "addr-any" See merge request slirp/libslirp!66
-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))