diff options
author | Anders Broman <anders.broman@ericsson.com> | 2006-06-17 16:13:25 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2006-06-17 16:13:25 +0000 |
commit | eb83c826cadef1dd489469b8e8ce9cfa3dc9adc1 (patch) | |
tree | 238fd6fd7e154d96d07fee7258a8460413bd4fbf /plugins | |
parent | 86eaf399d0bf141f651d8a0b0f02f896714e7dc2 (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.c | 7 |
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; } |