diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2021-02-16 20:42:02 +0000 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2021-02-16 20:42:02 +0000 |
commit | 26ae658a83eeca16780cf5615c8247cbb151c3fa (patch) | |
tree | fc693c08f8cd25be360a37d34ecf89d845aa67fc | |
parent | 5aa333e79b9892af9bf9621435d52cd058544d18 (diff) | |
parent | b55df476b438c2c55108f8e3f86e9490545e403d (diff) | |
download | slirp-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.c | 8 |
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)) |