[libvirt] [PATCH] util: Fix mask for 172.16.0.0 private address range

https://bugzilla.redhat.com/show_bug.cgi?id=905708 Only the first 12 bits should be set in the mask for this range. All addresses between 172.16.0.0 and 172.31.255.255 are private. --- src/util/virsocketaddr.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/util/virsocketaddr.c b/src/util/virsocketaddr.c index 7bc43a9..3dfa3fb 100644 --- a/src/util/virsocketaddr.c +++ b/src/util/virsocketaddr.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2012 Red Hat, Inc. + * Copyright (C) 2009-2013 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -199,7 +199,7 @@ virSocketAddrEqual(const virSocketAddrPtr s1, const virSocketAddrPtr s2) * * Return true if this address is in its family's defined * "private/local" address space. For IPv4, private addresses are in - * the range of 192.168.0.0/16, 172.16.0.0/16, or 10.0.0.0/8. For + * the range of 192.168.0.0/16, 172.16.0.0/12, or 10.0.0.0/8. For * IPv6, local addresses are in the range of FC00::/7 or FEC0::/10 * (that last one is deprecated, but still in use). * @@ -215,7 +215,7 @@ virSocketAddrIsPrivate(const virSocketAddrPtr addr) val = ntohl(addr->data.inet4.sin_addr.s_addr); return ((val & 0xFFFF0000) == ((192L << 24) + (168 << 16)) || - (val & 0xFFFF0000) == ((172L << 24) + (16 << 16)) || + (val & 0xFFF00000) == ((172L << 24) + (16 << 16)) || (val & 0xFF000000) == ((10L << 24))); case AF_INET6: -- 1.8.1.2

On 30.01.2013 12:07, Jiri Denemark wrote:
https://bugzilla.redhat.com/show_bug.cgi?id=905708
Only the first 12 bits should be set in the mask for this range. All addresses between 172.16.0.0 and 172.31.255.255 are private. --- src/util/virsocketaddr.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/util/virsocketaddr.c b/src/util/virsocketaddr.c index 7bc43a9..3dfa3fb 100644 --- a/src/util/virsocketaddr.c +++ b/src/util/virsocketaddr.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2012 Red Hat, Inc. + * Copyright (C) 2009-2013 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -199,7 +199,7 @@ virSocketAddrEqual(const virSocketAddrPtr s1, const virSocketAddrPtr s2) * * Return true if this address is in its family's defined * "private/local" address space. For IPv4, private addresses are in - * the range of 192.168.0.0/16, 172.16.0.0/16, or 10.0.0.0/8. For + * the range of 192.168.0.0/16, 172.16.0.0/12, or 10.0.0.0/8. For * IPv6, local addresses are in the range of FC00::/7 or FEC0::/10 * (that last one is deprecated, but still in use). * @@ -215,7 +215,7 @@ virSocketAddrIsPrivate(const virSocketAddrPtr addr) val = ntohl(addr->data.inet4.sin_addr.s_addr);
return ((val & 0xFFFF0000) == ((192L << 24) + (168 << 16)) || - (val & 0xFFFF0000) == ((172L << 24) + (16 << 16)) || + (val & 0xFFF00000) == ((172L << 24) + (16 << 16)) || (val & 0xFF000000) == ((10L << 24)));
case AF_INET6:
ACK Michal

On Wed, Jan 30, 2013 at 15:16:18 +0100, Michal Privoznik wrote:
On 30.01.2013 12:07, Jiri Denemark wrote:
https://bugzilla.redhat.com/show_bug.cgi?id=905708
Only the first 12 bits should be set in the mask for this range. All addresses between 172.16.0.0 and 172.31.255.255 are private.
ACK
Thanks, pushed. Jirka
participants (2)
-
Jiri Denemark
-
Michal Privoznik