diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2013-11-03 18:07:46 +0000 |
---|---|---|
committer | Pascal Quantin <pascal.quantin@gmail.com> | 2013-11-03 18:07:46 +0000 |
commit | ea0a85c23097ab9693f6852a9007bb0db2f8dfbc (patch) | |
tree | 58e0e63bf233fb95a2efc55688521528f598df53 /epan/dissectors/packet-sip.c | |
parent | f1a3e8634ff35f4c378c4abb2adcb24f8fa8f15e (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.c | 11 |
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; |