diff options
author | D. Ulis <daulis0@gmail.com> | 2016-09-30 15:19:51 -0400 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2016-09-30 21:26:39 +0000 |
commit | 0f18087ca32fa897dd3dfc04202bb40d3639364d (patch) | |
tree | 19dd73b62f6b82bd302c3db26332750690b06b46 /epan/dissectors/packet-cipmotion.c | |
parent | cda23193bfa9f5b9b1753742ebffdaddd75a73c2 (diff) |
CIP: Minor bug fixes
1. CIP: dissect_cip_set_attribute_list_req - Too many bytes highlighted. Could cause malformed packet
2. CIP: dissect_cip_cco_all_attribute_common - Too many bytes highlighted
3. CIP Motion: dissect_cntr_service - Wrong size passed in which tried to highlight too many bytes. Would cause malformed packet.
4. CIP: Some minor formatting/whitespace changes.
Change-Id: I5899888a3e58452945c8546cf635768cdd3cf738
Reviewed-on: https://code.wireshark.org/review/18000
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/packet-cipmotion.c')
-rw-r--r-- | epan/dissectors/packet-cipmotion.c | 58 |
1 files changed, 32 insertions, 26 deletions
diff --git a/epan/dissectors/packet-cipmotion.c b/epan/dissectors/packet-cipmotion.c index fc6f7118ff..72ce5c0a70 100644 --- a/epan/dissectors/packet-cipmotion.c +++ b/epan/dissectors/packet-cipmotion.c @@ -1292,20 +1292,23 @@ dissect_cntr_service(tvbuff_t* tvb, proto_tree* tree, guint32 offset, guint32 si proto_tree_add_item(header_tree, hf_cip_svc_code, tvb, offset + 1, 1, ENC_LITTLE_ENDIAN); /* If the service is a set axis, get axis attribute or group sync request dissect it as well */ - switch(service) + if (size > 4) { - case SC_GET_AXIS_ATTRIBUTE_LIST: - dissect_get_axis_attr_list_request(tvb, header_tree, offset + 4, size); - break; - case SC_SET_AXIS_ATTRIBUTE_LIST: - dissect_set_axis_attr_list_request(tvb, header_tree, offset + 4, size); - break; - case SC_GROUP_SYNC: - dissect_group_sync_request(tvb, header_tree, offset + 4, size); - break; - default: - /* Display the remainder of the service channel data */ - proto_tree_add_item(header_tree, hf_cip_svc_data, tvb, offset + 4, size - 4, ENC_NA); + switch (service) + { + case SC_GET_AXIS_ATTRIBUTE_LIST: + dissect_get_axis_attr_list_request(tvb, header_tree, offset + 4, size - 4); + break; + case SC_SET_AXIS_ATTRIBUTE_LIST: + dissect_set_axis_attr_list_request(tvb, header_tree, offset + 4, size - 4); + break; + case SC_GROUP_SYNC: + dissect_group_sync_request(tvb, header_tree, offset + 4, size - 4); + break; + default: + /* Display the remainder of the service channel data */ + proto_tree_add_item(header_tree, hf_cip_svc_data, tvb, offset + 4, size - 4, ENC_NA); + } } return offset + size; @@ -1483,20 +1486,23 @@ dissect_devce_service(tvbuff_t* tvb, proto_tree* tree, guint32 offset, guint32 s proto_tree_add_item(header_tree, hf_cip_svc_ext_status, tvb, offset + 3, 1, ENC_LITTLE_ENDIAN); /* If the service is a set axis, get axis attribute response or group sync dissect it as well */ - switch(tvb_get_guint8(tvb, offset + 1)) + if (size > 4) { - case SC_GET_AXIS_ATTRIBUTE_LIST: - dissect_get_axis_attr_list_response(tvb, header_tree, offset + 4, size); - break; - case SC_SET_AXIS_ATTRIBUTE_LIST: - dissect_set_axis_attr_list_response(tvb, header_tree, offset + 4, size); - break; - case SC_GROUP_SYNC: - dissect_group_sync_response(tvb, header_tree, offset + 4, size); - break; - default: - /* Display the remainder of the service channel data */ - proto_tree_add_item(header_tree, hf_cip_svc_data, tvb, offset + 4, size - 4, ENC_NA); + switch (tvb_get_guint8(tvb, offset + 1)) + { + case SC_GET_AXIS_ATTRIBUTE_LIST: + dissect_get_axis_attr_list_response(tvb, header_tree, offset + 4, size - 4); + break; + case SC_SET_AXIS_ATTRIBUTE_LIST: + dissect_set_axis_attr_list_response(tvb, header_tree, offset + 4, size - 4); + break; + case SC_GROUP_SYNC: + dissect_group_sync_response(tvb, header_tree, offset + 4, size - 4); + break; + default: + /* Display the remainder of the service channel data */ + proto_tree_add_item(header_tree, hf_cip_svc_data, tvb, offset + 4, size - 4, ENC_NA); + } } return offset + size; |