diff options
author | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2005-06-27 11:43:18 +0000 |
---|---|---|
committer | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2005-06-27 11:43:18 +0000 |
commit | 05f9375d55f3ac69531496f41ea0948254762d64 (patch) | |
tree | 4a1afade748f702b0dd55b3452412456a97e5d56 /epan | |
parent | 6838ce28071a27bcfa447f453c6677531aeefc53 (diff) |
fix two bugs when updating offset incorrectly that could lead to an infinite loop when trying to decode an unknown ber structure
svn path=/trunk/; revision=14799
Diffstat (limited to 'epan')
-rw-r--r-- | epan/dissectors/packet-ber.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/epan/dissectors/packet-ber.c b/epan/dissectors/packet-ber.c index e2b4400dc6..8ac9b7b42f 100644 --- a/epan/dissectors/packet-ber.c +++ b/epan/dissectors/packet-ber.c @@ -309,7 +309,7 @@ int dissect_unknown_ber(packet_info *pinfo, tvbuff_t *tvb, int offset, proto_tre next_tree=proto_item_add_subtree(item, ett_ber_SEQUENCE); } next_tvb=tvb_new_subset(tvb, offset, len, len); - offset=dissect_unknown_ber(pinfo, next_tvb, 0, next_tree); + offset += dissect_unknown_ber(pinfo, next_tvb, 0, next_tree); break; case BER_UNI_TAG_NumericString: offset = dissect_ber_octet_string(FALSE, pinfo, tree, tvb, start_offset, hf_ber_unknown_NumericString, NULL); @@ -331,7 +331,7 @@ int dissect_unknown_ber(packet_info *pinfo, tvbuff_t *tvb, int offset, proto_tre next_tree=proto_item_add_subtree(item, ett_ber_SEQUENCE); } next_tvb=tvb_new_subset(tvb, offset, len, len); - offset=dissect_unknown_ber(pinfo, next_tvb, 0, next_tree); + offset += dissect_unknown_ber(pinfo, next_tvb, 0, next_tree); break; default: proto_tree_add_text(tree, tvb, offset, len, "BER: Error can not handle class:%d (0x%02x)",class,tvb_get_guint8(tvb, start_offset)); |