From 5416a34d57d1ac488eaad2379b366b6c8084ab29 Mon Sep 17 00:00:00 2001 From: Guy Harris Date: Sat, 11 Jun 2016 19:13:14 -0700 Subject: Handle zero-length addresses in cmp_address(). Don't compare the data if there's none to compare. Change-Id: Ib0e3541e448127869d19afddfc71bb441dba5874 Reviewed-on: https://code.wireshark.org/review/15840 Reviewed-by: Guy Harris --- epan/address.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'epan/address.h') diff --git a/epan/address.h b/epan/address.h index 31eef6a158..ebc8017d93 100644 --- a/epan/address.h +++ b/epan/address.h @@ -199,6 +199,14 @@ cmp_address(const address *addr1, const address *addr2) { if (addr1->type < addr2->type) return -1; if (addr1->len > addr2->len) return 1; if (addr1->len < addr2->len) return -1; + if (addr1->len == 0) { + /* + * memcmp(NULL, NULL, 0) is *not* guaranteed to work, so + * if both addresses are zero-length, don't compare them + * (there's nothing to compare, so they're equal). + */ + return 0; + } return memcmp(addr1->data, addr2->data, addr1->len); } -- cgit v1.2.1