aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1/snmp
diff options
context:
space:
mode:
authorJaap Keuter <jaap.keuter@xs4all.nl>2019-09-14 09:42:57 +0200
committerMichael Mann <mmann78@netscape.net>2019-09-14 11:32:01 +0000
commit608dbda8eeefeb1c79fd93c1848515d8bc6b4ca1 (patch)
tree00002261f1bd06776e350e16fc2b690484f36bdc /epan/dissectors/asn1/snmp
parentb609096e43501b8bf5a62ea39ff8a963b1420c9f (diff)
SNMP: handle Net-SNMP Engine Id of 12 octets
The Net-SNMP code creates an Engine Id size based on the compilation size, either 8 or 12 octets long. Current implementation handles 32 bit compilation of Net-SNMP (resulting in 8 octets), this change adds handling of 64 bit compilation of Net-SNMP (resulting in 12 octets). Bug: 16051 Change-Id: I256f9a7ad2fd219492e4ebc413ef24cd2c210e0b Reviewed-on: https://code.wireshark.org/review/34520 Reviewed-by: Jaap Keuter <jaap.keuter@xs4all.nl> Petri-Dish: Jaap Keuter <jaap.keuter@xs4all.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors/asn1/snmp')
-rw-r--r--epan/dissectors/asn1/snmp/packet-snmp-template.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/epan/dissectors/asn1/snmp/packet-snmp-template.c b/epan/dissectors/asn1/snmp/packet-snmp-template.c
index 66f42dc423..8a9ecfd38b 100644
--- a/epan/dissectors/asn1/snmp/packet-snmp-template.c
+++ b/epan/dissectors/asn1/snmp/packet-snmp-template.c
@@ -1201,16 +1201,16 @@ dissect_snmp_engineid(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb, int o
/* most common enterprise-specific format: (ucd|net)-snmp random */
if ((enterpriseid==2021)||(enterpriseid==8072)) {
proto_item_append_text(item, (enterpriseid==2021) ? ": UCD-SNMP Random" : ": Net-SNMP Random");
- /* demystify: 4B random, 4B epoch seconds */
- if (len_remain==8) {
- proto_tree_add_item(tree, hf_snmp_engineid_data, tvb, offset, 4, ENC_NA);
- seconds = tvb_get_letohl(tvb, offset+4);
+ /* demystify: 4B/8B random, 4B epoch seconds */
+ if ((len_remain==8) || (len_remain==12)) {
+ proto_tree_add_item(tree, hf_snmp_engineid_data, tvb, offset, len_remain - 4, ENC_NA);
+ seconds = tvb_get_letohl(tvb, offset + (len_remain - 4));
ts.secs = seconds;
ts.nsecs = 0;
- proto_tree_add_time_format_value(tree, hf_snmp_engineid_time, tvb, offset+4, 4,
+ proto_tree_add_time_format_value(tree, hf_snmp_engineid_time, tvb, offset + (len_remain - 4), 4,
&ts, "%s",
abs_time_secs_to_str(wmem_packet_scope(), seconds, ABSOLUTE_TIME_LOCAL, TRUE));
- offset+=8;
+ offset+=len_remain;
len_remain=0;
}
break;