aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-sip.c
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 /epan/dissectors/packet-sip.c
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
Diffstat (limited to 'epan/dissectors/packet-sip.c')
-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;