diff options
author | Gerald Combs <gerald@wireshark.org> | 2005-07-24 21:02:40 +0000 |
---|---|---|
committer | Gerald Combs <gerald@wireshark.org> | 2005-07-24 21:02:40 +0000 |
commit | 7743ecf3c9131047bfd668ff3cec505d891682d9 (patch) | |
tree | 3d52523a45fe095988b3759aea58bee757430485 /plugins | |
parent | 255b302a82df7d1a03953db43cc1ad1afcbd6cfe (diff) | |
download | wireshark-7743ecf3c9131047bfd668ff3cec505d891682d9.tar.gz wireshark-7743ecf3c9131047bfd668ff3cec505d891682d9.tar.bz2 wireshark-7743ecf3c9131047bfd668ff3cec505d891682d9.zip |
Break out of another infinite loop. Fixes bug 293.
svn path=/trunk/; revision=15047
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/megaco/packet-megaco.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/plugins/megaco/packet-megaco.c b/plugins/megaco/packet-megaco.c index 4afc9f9f98..368bc89e12 100644 --- a/plugins/megaco/packet-megaco.c +++ b/plugins/megaco/packet-megaco.c @@ -1995,12 +1995,17 @@ dissect_megaco_observedeventsdescriptor(tvbuff_t *tvb, packet_info *pinfo, proto } while ( tvb_help_offset < requested_event_end_offset ); } + tvb_previous_offset = tvb_current_offset; tvb_current_offset = tvb_find_guint8(tvb, tvb_RBRKT, tvb_observedevents_end_offset, ','); 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) { + proto_tree_add_text(megaco_observedevent_tree, tvb, 0, 0, "[ Parse error: Invalid offset ]"); + return; + } tvb_previous_offset = tvb_skip_wsp(tvb, tvb_current_offset+1); |