aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2006-06-17 16:13:25 +0000
committerAnders Broman <anders.broman@ericsson.com>2006-06-17 16:13:25 +0000
commiteb83c826cadef1dd489469b8e8ce9cfa3dc9adc1 (patch)
tree238fd6fd7e154d96d07fee7258a8460413bd4fbf /plugins
parent86eaf399d0bf141f651d8a0b0f02f896714e7dc2 (diff)
From Tarlovskij Eugene:
- MEGACO dissector fails to decode observedevents descriptor - BoundsError exception in text MEGACO packets svn path=/trunk/; revision=18504
Diffstat (limited to 'plugins')
-rw-r--r--plugins/megaco/packet-megaco.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/plugins/megaco/packet-megaco.c b/plugins/megaco/packet-megaco.c
index c66498e571..2056590931 100644
--- a/plugins/megaco/packet-megaco.c
+++ b/plugins/megaco/packet-megaco.c
@@ -1346,8 +1346,9 @@ dissect_megaco_mediadescriptor(tvbuff_t *tvb, proto_tree *megaco_tree_command_li
tvb_current_offset = tvb_find_guint8(tvb, tvb_previous_offset, tvb_RBRKT, '=');
tokenlen = tvb_current_offset - tvb_previous_offset -1;
- proto_tree_add_text(megaco_mediadescriptor_tree, tvb, tvb_previous_offset, tokenlen,
- "%s", tvb_format_text(tvb, tvb_previous_offset, tokenlen));
+ if (tokenlen > 0)
+ proto_tree_add_text(megaco_mediadescriptor_tree, tvb, tvb_previous_offset, tokenlen,
+ "%s", tvb_format_text(tvb, tvb_previous_offset, tokenlen));
tvb_next_offset = tvb_find_guint8(tvb, tvb_previous_offset, tvb_RBRKT, '{');
/* If a StreamID is present */
@@ -2042,7 +2043,7 @@ dissect_megaco_observedeventsdescriptor(tvbuff_t *tvb, packet_info *pinfo, proto
if (tvb_current_offset == -1 || tvb_current_offset > tvb_observedevents_end_offset ){
tvb_current_offset = tvb_observedevents_end_offset;
}
- if (tvb_current_offset <= tvb_previous_offset) {
+ if (tvb_current_offset = tvb_previous_offset) {
proto_tree_add_text(megaco_observedevent_tree, tvb, 0, 0, "[ Parse error: Invalid offset ]");
return;
}