Wireshark-dev: Re: [Wireshark-dev] [Wireshark-commits] rev 51119: /trunk/ /trunk/epan/: addr_re
From: Jeff Morriss <jeff.morriss.ws@xxxxxxxxx>
Date: Fri, 02 Aug 2013 14:22:32 -0400
On 08/02/13 11:05, etxrab@xxxxxxxxxxxxx wrote:
http://anonsvn.wireshark.org/viewvc/viewvc.cgi?view=rev&revision=51119

User: etxrab
Date: 2013/08/02 08:05 AM

Log:
  - Use a hashtable for eth lookup.
  Currently broken get_ether_addr().
  - Show hastable content in address dlg.(temp solution).

This (or maybe another rev) is causing plenty of errors like:

(lt-wireshark:6958): GLib-CRITICAL **: g_hash_table_lookup: assertion `hash_table != NULL' failed

At least one case is from:

#0  0x0000003d3904edb0 in g_log () from /lib64/libglib-2.0.so.0
#1  0x0000003d39037da9 in g_hash_table_lookup () from /lib64/libglib-2.0.so.0
#2  0x00007ffff4f5e9ee in manuf_name_lookup (addr=addr@entry=0x1774014 "\310`") at ../../epan/addr_resolv.c:1381
#3  0x00007ffff4f5eb3b in eth_addr_resolve (tp=tp@entry=0x1774010) at ../../epan/addr_resolv.c:1546
#4  0x00007ffff4f5f08f in eth_name_lookup (addr=0x17c17b0 "\310`", resolve=1) at ../../epan/addr_resolv.c:1718
#5  0x00007ffff4f60360 in get_ether_name (addr=addr@entry=0x17c17b0 "\310`") at ../../epan/addr_resolv.c:3019


2  0x00007ffff4f5e9ee in manuf_name_lookup (addr=addr@entry=0x1774014 "\310`") at ../../epan/addr_resolv.c:1381
1381	  name = (gchar *)g_hash_table_lookup(manuf_hashtable, &manuf_key);
(gdb) print manuf_hashtable
$1 = 0x0

This appears to be happening because my out-of-source-tree-build doesn't have a local 'manuf' file.

I guess the hash tables need to be created (empty) regardless of whether we have anything to put in them. Or we need a bunch more checks for the hash table not being there.