diff options
author | Gerald Combs <gerald@wireshark.org> | 2005-04-27 19:09:55 +0000 |
---|---|---|
committer | Gerald Combs <gerald@wireshark.org> | 2005-04-27 19:09:55 +0000 |
commit | b979f69c0c2f3b4a70f00730c581cb53b1aa1d37 (patch) | |
tree | d4baecf9bb472492e56c9d1c94101ee4adddfbd6 | |
parent | 5ec0554c2475bbdbf0f863dfa58f6f7fc6789ddb (diff) |
Break out of an infinite loop. Fixes bug 95.
svn path=/trunk/; revision=14204
-rw-r--r-- | plugins/megaco/packet-megaco.c | 7 |
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; |