aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2005-04-14 20:16:35 +0000
committerGerald Combs <gerald@wireshark.org>2005-04-14 20:16:35 +0000
commitadbc8b86b5e9b60e08b29b65734d31b32a32119a (patch)
tree55baaa28b3ba4408f99204516f56977737625d50
parent3008014ed742a19314b66a65ab36028a49b02296 (diff)
In dissect_ber_integer(), generate a warning if the integer length is
invalid instead of throwing an assertion. Fixes bug 25. svn path=/trunk/; revision=14080
-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;