diff options
author | dsrsupport <eugene.exarevsky@dsr-company.com> | 2016-09-06 17:56:15 +0300 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2016-10-19 17:21:25 +0000 |
commit | c92cc9c95a8bc45c932bb37775627657994e906d (patch) | |
tree | 99c8f8c97b2299cdce1eebe4ac9cc7e5de400b93 /epan/dissectors | |
parent | 11e8bac88e067b226f92add83eca3009fa5b95a7 (diff) |
ZigBee ZDO dissector: fix for r21 in column description in ZDO Node Desc Resp.
Fixed display for Server flags:
a) introduce a flag 'show_ver_flags' to display stack revision only for ZDO Node Desc Resp;
b) fix crash in zdp_parse_node_desc when passed NULL as pinfo. Now never pass NULL there.
Change-Id: Ibdb7fe2da54a902b39e20e07aa2aa5c9c23beeee
Reviewed-on: https://code.wireshark.org/review/18313
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors')
-rw-r--r-- | epan/dissectors/packet-zbee-zdp-discovery.c | 4 | ||||
-rw-r--r-- | epan/dissectors/packet-zbee-zdp.c | 4 | ||||
-rw-r--r-- | epan/dissectors/packet-zbee-zdp.h | 2 |
3 files changed, 5 insertions, 5 deletions
diff --git a/epan/dissectors/packet-zbee-zdp-discovery.c b/epan/dissectors/packet-zbee-zdp-discovery.c index 25fde7a0c4..cb79f4a26e 100644 --- a/epan/dissectors/packet-zbee-zdp-discovery.c +++ b/epan/dissectors/packet-zbee-zdp-discovery.c @@ -481,7 +481,7 @@ dissect_zbee_zdp_req_store_node_desc(tvbuff_t *tvb, packet_info *pinfo, proto_tr /*device =*/ zbee_parse_uint(tree, hf_zbee_zdp_device, tvb, &offset, (int)sizeof(guint16), NULL); ext_addr = zbee_parse_eui64(tree, hf_zbee_zdp_ext_addr, tvb, &offset, (int)sizeof(guint64), NULL); - zdp_parse_node_desc(tree, NULL, ett_zbee_zdp_node, tvb, &offset, version); + zdp_parse_node_desc(tree, pinfo, FALSE, ett_zbee_zdp_node, tvb, &offset, version); zbee_append_info(tree, pinfo, ", Device: %s", eui64_to_display(wmem_packet_scope(), ext_addr)); @@ -783,7 +783,7 @@ dissect_zbee_zdp_rsp_node_desc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr status = zdp_parse_status(tree, tvb, &offset); device = zbee_parse_uint(tree, hf_zbee_zdp_device, tvb, &offset, (int)sizeof(guint16), NULL); if (status == ZBEE_ZDP_STATUS_SUCCESS) { - zdp_parse_node_desc(tree, pinfo, ett_zbee_zdp_node, tvb, &offset, version); + zdp_parse_node_desc(tree, pinfo, TRUE, ett_zbee_zdp_node, tvb, &offset, version); } zbee_append_info(tree, pinfo, ", Device: 0x%04x", device); diff --git a/epan/dissectors/packet-zbee-zdp.c b/epan/dissectors/packet-zbee-zdp.c index 3b1834c54d..3e52ef3fa8 100644 --- a/epan/dissectors/packet-zbee-zdp.c +++ b/epan/dissectors/packet-zbee-zdp.c @@ -725,7 +725,7 @@ zdp_parse_server_flags(proto_tree *tree, gint ettindex, tvbuff_t *tvb, guint *of *@param offset offset into the tvb to find the node descriptor. */ void -zdp_parse_node_desc(proto_tree *tree, packet_info *pinfo, gint ettindex, tvbuff_t *tvb, guint *offset, guint8 version) +zdp_parse_node_desc(proto_tree *tree, packet_info *pinfo, gboolean show_ver_flags, gint ettindex, tvbuff_t *tvb, guint *offset, guint8 version) { proto_item *ti; proto_item *field_root = NULL; @@ -784,7 +784,7 @@ zdp_parse_node_desc(proto_tree *tree, packet_info *pinfo, gint ettindex, tvbuff_ }; ver_flags = zdp_parse_server_flags(field_tree, ett_zbee_zdp_server, tvb, offset) & ZBEE_ZDP_NODE_SERVER_STACK_COMPL_REV; - if (ver_flags) { + if (show_ver_flags && ver_flags) { zbee_append_info(tree, pinfo, ", Rev: %d", (ver_flags >> ws_ctz(ZBEE_ZDP_NODE_SERVER_STACK_COMPL_REV))); } diff --git a/epan/dissectors/packet-zbee-zdp.h b/epan/dissectors/packet-zbee-zdp.h index 216825ef4c..9a47640be4 100644 --- a/epan/dissectors/packet-zbee-zdp.h +++ b/epan/dissectors/packet-zbee-zdp.h @@ -336,7 +336,7 @@ extern guint zbee_parse_uint (proto_tree *tree, int hfindex, tvbuf extern guint64 zbee_parse_eui64 (proto_tree *tree, int hfindex, tvbuff_t *tvb, guint *offset, guint length, proto_item **ti); extern void zbee_append_info (proto_item *item, packet_info *pinfo, const gchar *format, ...) G_GNUC_PRINTF(3, 4); -extern void zdp_parse_node_desc (proto_tree *tree, packet_info *pinfo, gint ettindex, tvbuff_t *tvb, guint *offset, guint8 version); +extern void zdp_parse_node_desc (proto_tree *tree, packet_info *pinfo, gboolean show_ver_flags, gint ettindex, tvbuff_t *tvb, guint *offset, guint8 version); extern void zdp_parse_power_desc (proto_tree *tree, gint ettindex, tvbuff_t *tvb, guint *offset); extern void zdp_parse_simple_desc (proto_tree *tree, gint ettindex, tvbuff_t *tvb, guint *offset, guint8 version); extern void zdp_parse_complex_desc (proto_tree *tree, gint ettindex, tvbuff_t *tvb, guint *offset, guint length); |