aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-sip.c
diff options
context:
space:
mode:
authorPascal Quantin <pascal.quantin@gmail.com>2013-11-03 18:07:46 +0000
committerPascal Quantin <pascal.quantin@gmail.com>2013-11-03 18:07:46 +0000
commitea0a85c23097ab9693f6852a9007bb0db2f8dfbc (patch)
tree58e0e63bf233fb95a2efc55688521528f598df53 /epan/dissectors/packet-sip.c
parentf1a3e8634ff35f4c378c4abb2adcb24f8fa8f15e (diff)
Fix https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9031 :
SIP contact-param parsing fails in case the last parameter includes a quoted string svn path=/trunk/; revision=53071
Diffstat (limited to 'epan/dissectors/packet-sip.c')
-rw-r--r--epan/dissectors/packet-sip.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/epan/dissectors/packet-sip.c b/epan/dissectors/packet-sip.c
index e6fddb474c..5a3e239136 100644
--- a/epan/dissectors/packet-sip.c
+++ b/epan/dissectors/packet-sip.c
@@ -1575,12 +1575,13 @@ dissect_sip_contact_item(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gi
queried_offset = tvb_find_guint8(tvb, queried_offset+1, line_end_offset - queried_offset, '"');
if(queried_offset==-1){
/* We have an opening quote but no closing quote. */
- queried_offset = line_end_offset;
- }
- current_offset = tvb_find_guint8(tvb, queried_offset+1, line_end_offset - queried_offset, ';');
- if(current_offset==-1){
- /* Last parameter, line end */
current_offset = line_end_offset;
+ } else {
+ current_offset = tvb_pbrk_guint8(tvb, queried_offset+1, line_end_offset - queried_offset, ",;", &c);
+ if(current_offset==-1){
+ /* Last parameter, line end */
+ current_offset = line_end_offset;
+ }
}
}else{
current_offset = queried_offset;