From: Russ Combs Date: Wed, 29 Jul 2015 21:30:23 +0000 (-0400) Subject: commit 43e7b919b1a69e791519143c77613ad011c43c2a X-Git-Tag: 3.0.0-233~897 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d8617f2e6766c73dbcd4a07ef6156bb1416435c3;p=thirdparty%2Fsnort3.git commit 43e7b919b1a69e791519143c77613ad011c43c2a Author: Carter Waxman Date: Wed Jul 29 14:50:47 2015 -0400 added 169.254.0.0/16 to isPrivateIP. Fixed endianness issue --- diff --git a/src/protocols/ipv4.h b/src/protocols/ipv4.h index e68e5fa46..5cc691ae9 100644 --- a/src/protocols/ipv4.h +++ b/src/protocols/ipv4.h @@ -158,19 +158,17 @@ struct IP4Hdr static inline bool isPrivateIP(uint32_t addr) { - switch (addr & 0xff) + addr = ntohl(addr); + switch (addr & 0xFF000000) { - case 0x0a: + case 0x0A000000: // 10.0.0.0/8 return true; - break; - case 0xac: - if ((addr & 0xf000) == 0x1000) - return true; - break; - case 0xc0: - if (((addr & 0xff00) ) == 0xa800) - return true; - break; + case 0xA9000000: // 169.254.0.0/16 + return (addr & 0x00FF0000) == 0x00FE0000; + case 0xAC000000: // 172.16.0.0/12 + return (addr & 0x00F00000) == 0x00100000; + case 0xC0000000: // 192.168.0.0/16 + return (addr & 0x00FF0000) == 0x00A80000; } return false; }