mirror of
https://passt.top/passt
synced 2025-06-11 18:15:34 +02:00
Correct some missing endian conversions of IPv4 addresses
The INADDR_LOOPBACK constant is in host endianness, and similarly the IN_MULTICAST macro expects a host endian address. However, there are some places in passt where we use those with network endian values. This means that passt will incorrectly allow you to set 127.0.0.1 or a multicast address as the guest address or DNS forwarding address. Add the necessary conversions to correct this. INADDR_ANY and INADDR_BROADCAST logically behave the same way, although because they're palindromes it doesn't have an effect in practice. Change them to be logically correct while we're there, though. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
parent
40fc9e6e7b
commit
2b793d94ca
2 changed files with 14 additions and 14 deletions
2
icmp.c
2
icmp.c
|
@ -154,7 +154,7 @@ int icmp_tap_handler(const struct ctx *c, int af, const void *addr,
|
|||
union icmp_epoll_ref iref = { .icmp.v6 = 0 };
|
||||
struct sockaddr_in sa = {
|
||||
.sin_family = AF_INET,
|
||||
.sin_addr = { .s_addr = INADDR_ANY },
|
||||
.sin_addr = { .s_addr = htonl(INADDR_ANY) },
|
||||
};
|
||||
struct icmphdr *ih;
|
||||
int id, s;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue