[ovs-dev] [PATCH] packets: Fix in6_is_lla() on systems without s6_addr32 defined.

Justin Pettit jpettit at ovn.org
Wed Jul 20 06:04:20 UTC 2016


Reported-by: Ben Pfaff <blp at ovn.org>
Signed-off-by: Justin Pettit <jpettit at ovn.org>
---
 lib/packets.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lib/packets.h b/lib/packets.h
index 8f11e2c..5fd1e51 100644
--- a/lib/packets.h
+++ b/lib/packets.h
@@ -987,8 +987,9 @@ in6_is_lla(struct in6_addr *addr)
 #ifdef s6_addr32
     return addr->s6_addr32[0] == htonl(0xfe800000) && !(addr->s6_addr32[1]);
 #else
-    return addr->s6_addr[0] == htons(0xfe80) &&
-         !(addr->s6_addr[1] | addr->s6_addr[2] | addr->s6_addr[3]);
+    return addr->s6_addr[0] == 0xfe && addr->s6_addr[1] == 0x80 &&
+         !(addr->s6_addr[2] | addr->s6_addr[3] | addr->s6_addr[4] |
+           addr->s6_addr[5] | addr->s6_addr[6] | addr->s6_addr[7]);
 #endif
 }
 
-- 
1.9.1




More information about the dev mailing list