diff options
author | guy <guy@f5534014-38df-0310-8fa8-9805f1628bb7> | 2011-11-19 22:57:13 +0000 |
---|---|---|
committer | guy <guy@f5534014-38df-0310-8fa8-9805f1628bb7> | 2011-11-19 22:57:13 +0000 |
commit | 35594991aa554a329ab10d2ea5f2029159bc1f95 (patch) | |
tree | 07f1c7b63bed1780610b1d3b0fc9bf6036ee4a16 | |
parent | 56f120d22b75b0547198d3a07d44920c3af3d8a9 (diff) |
The URI parameter parser always has to advance current_offset in the
loop, otherwise you get stuck in an infinite loop.
(Where in RFC 3261 does it mention the use of commas in URI parameters?)
Should fix bug 6598.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@39952 f5534014-38df-0310-8fa8-9805f1628bb7
-rw-r--r-- | epan/dissectors/packet-sip.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/epan/dissectors/packet-sip.c b/epan/dissectors/packet-sip.c index 87ab4789ec..5cf18d3643 100644 --- a/epan/dissectors/packet-sip.c +++ b/epan/dissectors/packet-sip.c @@ -1423,15 +1423,13 @@ display_sip_uri (tvbuff_t *tvb, proto_tree *sip_element_tree, uri_offset_info* u if (c == '>') { uri_param_end_offset = uri_offsets->name_addr_end - 1; - current_offset = uri_offsets->name_addr_end; - } else { uri_param_end_offset = uri_offsets->name_addr_end; - current_offset = uri_offsets->name_addr_end; } + current_offset = uri_offsets->name_addr_end; } else if (c==',') { uri_param_end_offset = queried_offset; - current_offset = queried_offset; + current_offset = queried_offset+1; /* must move forward */ } else if (c==';') { /* More parameters */ uri_param_end_offset = queried_offset-1; |