From 33f1256e00d4d91a7726fee0847144d4b6ba088b Mon Sep 17 00:00:00 2001 From: Jeff Morriss Date: Mon, 2 Feb 2015 21:28:01 -0500 Subject: Fix nameless application in NokiaSolutionsAndNetworks.xml (from I4cd9bd7f7219e4d9ff1bb8a71fab32439a8a9a35). (The nameless application was causing known applications to be reported as unknown.) Add code to the Diameter dissector to report such problems at startup (similar code exists for other entities). Tweak the parser debug slightly. Change-Id: I6b28cda8660e6eb96648c7b3697d7fd85151ac96 Reviewed-on: https://code.wireshark.org/review/6927 Petri-Dish: Jeff Morriss Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman --- diameter/NokiaSolutionsAndNetworks.xml | 2 +- diameter/dictionary.xml | 2 +- epan/diam_dict.l | 4 ++-- epan/dissectors/packet-diameter.c | 7 ++++++- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/diameter/NokiaSolutionsAndNetworks.xml b/diameter/NokiaSolutionsAndNetworks.xml index eecd06fe83..ee11095ab0 100644 --- a/diameter/NokiaSolutionsAndNetworks.xml +++ b/diameter/NokiaSolutionsAndNetworks.xml @@ -13,7 +13,7 @@ - + diff --git a/diameter/dictionary.xml b/diameter/dictionary.xml index 7e1878a199..29eeda5b21 100644 --- a/diameter/dictionary.xml +++ b/diameter/dictionary.xml @@ -6616,6 +6616,7 @@ 16777238 is defined in Cisco.xml 16777267 is defined in TGPP.xml 16777292 is defined in TGPP.xml + 16777302 is defined in NokiaSolutionsAndNetworks.xml 16777304 is defined in SKT.xml 16777317 is defined in NokiaSolutionsAndNetworks.xml --> @@ -6634,7 +6635,6 @@ - diff --git a/epan/diam_dict.l b/epan/diam_dict.l index 730c02652c..43fbcd9c26 100644 --- a/epan/diam_dict.l +++ b/epan/diam_dict.l @@ -512,11 +512,11 @@ description_attr description=\042 {stop} { BEGIN IN_AVP; } {stop_end} { BEGIN IN_AVP; } -{avp_end} { D(("avp_end")); BEGIN IN_APPL; } +{avp_end} { D(("avp_end\n")); BEGIN IN_APPL; } {application_end} | {base_end} { - BEGIN IN_DICT; + D(("application_end\n")); BEGIN IN_DICT; } {dictionary_end} { diff --git a/epan/dissectors/packet-diameter.c b/epan/dissectors/packet-diameter.c index 34c9d90c0d..d43f4829f6 100644 --- a/epan/dissectors/packet-diameter.c +++ b/epan/dissectors/packet-diameter.c @@ -1774,6 +1774,11 @@ dictionary_load(void) item[0].value = p->code; item[0].strptr = p->name; + if (!p->name) { + report_failure("Diameter Dictionary: Invalid Application (empty name): id=%d\n", p->code); + continue; + } + wmem_array_append_one(arr,item); } @@ -1793,7 +1798,7 @@ dictionary_load(void) item[0].strptr = v->name; if (v->name == NULL) { - report_failure("Diameter Dictionary: Invalid Vendor (empty name): code==%d\n",v->code); + report_failure("Diameter Dictionary: Invalid Vendor (empty name): code==%d\n", v->code); continue; } -- cgit v1.2.3