aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2005-04-27 19:09:55 +0000
committerGerald Combs <gerald@wireshark.org>2005-04-27 19:09:55 +0000
commitb979f69c0c2f3b4a70f00730c581cb53b1aa1d37 (patch)
treed4baecf9bb472492e56c9d1c94101ee4adddfbd6
parent5ec0554c2475bbdbf0f863dfa58f6f7fc6789ddb (diff)
Break out of an infinite loop. Fixes bug 95.
svn path=/trunk/; revision=14204
-rw-r--r--plugins/megaco/packet-megaco.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/plugins/megaco/packet-megaco.c b/plugins/megaco/packet-megaco.c
index 9ea08b20af..7e0d608755 100644
--- a/plugins/megaco/packet-megaco.c
+++ b/plugins/megaco/packet-megaco.c
@@ -598,8 +598,13 @@ nextcontext:
tvb_previous_offset = tvb_find_guint8(tvb, tvb_current_offset,
tvb_len, '=')+1;
tvb_previous_offset = tvb_skip_wsp(tvb, tvb_previous_offset);
- tvb_current_offset = tvb_find_guint8(tvb, tvb_previous_offset,
+ tvb_next_offset = tvb_find_guint8(tvb, tvb_previous_offset,
tvb_len, '{');
+ if (tvb_current_offset >= tvb_next_offset) {
+ proto_tree_add_text(megaco_tree, tvb, 0, 0, "[ Parse error: Invalid offset ]");
+ return;
+ }
+ tvb_current_offset = tvb_next_offset;
tokenlen = tvb_current_offset - tvb_previous_offset;