aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>2011-11-19 22:57:13 +0000
committerguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>2011-11-19 22:57:13 +0000
commit35594991aa554a329ab10d2ea5f2029159bc1f95 (patch)
tree07f1c7b63bed1780610b1d3b0fc9bf6036ee4a16
parent56f120d22b75b0547198d3a07d44920c3af3d8a9 (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.c6
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;