[PATCH] util: recognize all of 127.0.0.0/8 as loopback addresses

Björn Jacke bj at sernet.de
Fri Nov 11 11:36:47 UTC 2016


BUG: https://bugzilla.samba.org/show_bug.cgi?id=12422
---
 lib/util/util_net.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/lib/util/util_net.c b/lib/util/util_net.c
index cb238ad..2170adf 100644
--- a/lib/util/util_net.c
+++ b/lib/util/util_net.c
@@ -595,13 +595,16 @@ bool is_broadcast_addr(const struct sockaddr *pss)
 }
 
 /**
- * Check if an IPv7 is 127.0.0.1
+ * Check if an IPv4 address is loopback (127.0.0.1/8, see RFC 1122)
  */
 bool is_loopback_ip_v4(struct in_addr ip)
 {
-	struct in_addr a;
-	a.s_addr = htonl(INADDR_LOOPBACK);
-	return(ip.s_addr == a.s_addr);
+	struct in_addr lo_addr;
+	struct in_addr mask_addr;
+
+	lo_addr.s_addr = 0x01000000;
+	mask_addr.s_addr = 0xff000000;
+	return same_net_v4(*pin, lo_addr, mask_addr);
 }
 
 /**
-- 
2.7.4




More information about the samba-technical mailing list