diff options
author | Luis Ontanon <luis.ontanon@gmail.com> | 2005-09-25 02:48:53 +0000 |
---|---|---|
committer | Luis Ontanon <luis.ontanon@gmail.com> | 2005-09-25 02:48:53 +0000 |
commit | 32c673552c164810609d10e903ec43aab50ac44f (patch) | |
tree | 379fcbb95bd88138d118a926a8c73b33cf2b3271 /epan/dissectors/packet-radius.c | |
parent | b88ef47be0e3bbf4c05f8fc61f57cacd19c5c7b6 (diff) |
Don't ASSERT if a VSA is too short, add an item reporting the error and leave.
svn path=/trunk/; revision=15998
Diffstat (limited to 'epan/dissectors/packet-radius.c')
-rw-r--r-- | epan/dissectors/packet-radius.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/epan/dissectors/packet-radius.c b/epan/dissectors/packet-radius.c index 4197bb151e..4f944d941c 100644 --- a/epan/dissectors/packet-radius.c +++ b/epan/dissectors/packet-radius.c @@ -494,7 +494,13 @@ static void dissect_attribute_value_pairs(proto_tree *tree, packet_info *pinfo, guint32 avp_vsa_type = tvb_get_guint8(tvb,offset++); guint32 avp_vsa_len = tvb_get_guint8(tvb,offset++); - DISSECTOR_ASSERT(avp_vsa_len>2); + + if (avp_length < 2) { + proto_tree_add_text(tree, tvb, offset+1, 1, + "[VSA too short]"); + return; + } + avp_vsa_len -= 2; dictionary_entry = g_hash_table_lookup(vendor->attrs_by_id,GUINT_TO_POINTER(avp_vsa_type)); |