aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-radius.c
diff options
context:
space:
mode:
authorLuis Ontanon <luis.ontanon@gmail.com>2005-09-25 02:48:53 +0000
committerLuis Ontanon <luis.ontanon@gmail.com>2005-09-25 02:48:53 +0000
commit32c673552c164810609d10e903ec43aab50ac44f (patch)
tree379fcbb95bd88138d118a926a8c73b33cf2b3271 /epan/dissectors/packet-radius.c
parentb88ef47be0e3bbf4c05f8fc61f57cacd19c5c7b6 (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.c8
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));