aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--epan/dissectors/packet-ber.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/epan/dissectors/packet-ber.c b/epan/dissectors/packet-ber.c
index fd4fdaec91..8a41155b19 100644
--- a/epan/dissectors/packet-ber.c
+++ b/epan/dissectors/packet-ber.c
@@ -604,8 +604,12 @@ printf("INTEGERnew dissect_ber_integer(%s) entered implicit_tag:%d len:%d\n",nam
ber_last_created_item=NULL;
if(hf_id!=-1){
- /* XXX - what if "len" is not 1, 2, 3, or 4? */
- ber_last_created_item=proto_tree_add_item(tree, hf_id, tvb, offset-len, len, FALSE);
+ /* */
+ if (len < 1 || len > 4) {
+ proto_tree_add_text(tree, tvb, offset-len, len, "Can't handle integer length: %u", len);
+ } else {
+ ber_last_created_item=proto_tree_add_item(tree, hf_id, tvb, offset-len, len, FALSE);
+ }
}
if(value){
*value=val;