From 96a49bd8bb3e04a1f28d44141e45b9635db05720 Mon Sep 17 00:00:00 2001 From: Jiri Denemark Date: Wed, 30 Jan 2013 12:01:01 +0100 Subject: [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. (cherry picked from commit 6405713f2ab9243db7d856914aaefbd4f9747daa) --- 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 66ddb61805..d5c1ff37ae 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: -- GitLab