diff options
author | stig <stig@f5534014-38df-0310-8fa8-9805f1628bb7> | 2009-10-05 21:39:07 +0000 |
---|---|---|
committer | stig <stig@f5534014-38df-0310-8fa8-9805f1628bb7> | 2009-10-05 21:39:07 +0000 |
commit | 1b4b0e9b1b32f9653878b40ceeb8dfc5c9e58112 (patch) | |
tree | 21cd32e136ac490bac7c33fd7e0117609fc996df /asn1/snmp | |
parent | 83ee67af4fc084956f2e8cc105eb84cd7e7166b5 (diff) |
Return from dissect_snmp_VarBind() when detecting invalid oid.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@30348 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'asn1/snmp')
-rw-r--r-- | asn1/snmp/packet-snmp-template.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/asn1/snmp/packet-snmp-template.c b/asn1/snmp/packet-snmp-template.c index d703de9ecd..7c858efa6d 100644 --- a/asn1/snmp/packet-snmp-template.c +++ b/asn1/snmp/packet-snmp-template.c @@ -453,7 +453,14 @@ extern int dissect_snmp_VarBind(gboolean implicit_tag _U_, add_oid_debug_subtree(oid_info,pt_name); - if (subids && oid_matched+oid_left) { + if (!subids) { + proto_item* pi = proto_tree_add_text(pt_name,tvb, 0, 0, "invalid oid: %s", oid_bytes); + pt = proto_item_add_subtree(pi, ett_decoding_error); + expert_add_info_format(actx->pinfo, pi, PI_MALFORMED, PI_WARN, "invalid oid: %s", oid_bytes); + return dissect_unknown_ber(actx->pinfo, tvb, name_offset, pt); + } + + if (oid_matched+oid_left) { oid_string = oid_subid2string(subids,oid_matched+oid_left); } |