]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
commit 43e7b919b1a69e791519143c77613ad011c43c2a
authorRuss Combs <rucombs@cisco.com>
Wed, 29 Jul 2015 21:30:23 +0000 (17:30 -0400)
committerRuss Combs <rucombs@cisco.com>
Wed, 29 Jul 2015 21:30:23 +0000 (17:30 -0400)
Author: Carter Waxman <uberrootgh@gmail.com>
Date:   Wed Jul 29 14:50:47 2015 -0400

    added 169.254.0.0/16 to isPrivateIP. Fixed endianness issue

src/protocols/ipv4.h

index e68e5fa4625ed3355e153f02b9c681c30dfa52a4..5cc691ae94f831a1db8af006f8cc95b7b22d9981 100644 (file)
@@ -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;
 }