This patch report a bug on the ADDRESSES_EQUAL macro

When the address type is AT_NONE for the two addresses, there is
no need to compare the remaining fields.

When filling up packet address, some dissectors, if address type is
AT_NONE
don't fill the others fields. So there may have amything into these
fields.

Please find enclosed the patch which fix this bug.

Laurent MEYER


--- packet_info.h.orig  Fri Feb 28 16:50:27 2003
+++ packet_info.h       Fri Feb 28 16:45:29 2003
@@ -73,9 +73,10 @@
  * Given two addresses, return "true" if they're equal, "false" otherwise.
  */
 #define ADDRESSES_EQUAL(addr1, addr2) \
+        ((((addr1)->type == AT_NONE) && ((addr2)->type == AT_NONE))|| \
        ((addr1)->type == (addr2)->type && \
         (addr1)->len == (addr2)->len && \
-        memcmp((addr1)->data, (addr2)->data, (addr1)->len) == 0)
+        memcmp((addr1)->data, (addr2)->data, (addr1)->len) == 0))
 
 /*
  * Copy an address, allocating a new buffer for the address data.

Reply via email to