From ff5d4ffe1c4b379b0920bef41cdbaebb751f25aa Mon Sep 17 00:00:00 2001 From: Loic Blot Date: Sat, 9 Feb 2019 19:52:38 +0100 Subject: Fix Address::isLocalhost algorithm --- src/network/address.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/network/address.cpp') diff --git a/src/network/address.cpp b/src/network/address.cpp index 0ecface37..fce3b48f0 100644 --- a/src/network/address.cpp +++ b/src/network/address.cpp @@ -277,13 +277,13 @@ bool Address::isLocalhost() const { static const unsigned char localhost_bytes[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}; static const unsigned char mapped_ipv4_localhost[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0x7f, 0, 0, 1}; + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0x7f, 0, 0, 0}; auto addr = m_address.ipv6.sin6_addr.s6_addr; return memcmp(addr, localhost_bytes, 16) == 0 || - memcmp(addr, mapped_ipv4_localhost, 16) == 0; - } else { - return m_address.ipv4.sin_addr.s_addr == 0x0100007F; + memcmp(addr, mapped_ipv4_localhost, 13) == 0; } + + return (m_address.ipv4.sin_addr.s_addr & 0xFF) == 0x7f; } -- cgit v1.2.3