aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-sip.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2011-11-11 19:07:11 +0000
committerGuy Harris <guy@alum.mit.edu>2011-11-11 19:07:11 +0000
commitac507aa5e739cd49e09940b6041ac6e25631a084 (patch)
treeefc9ca8842b844ea5caff764840526d30d15514a /epan/dissectors/packet-sip.c
parenta0cbfab6bf634c86d3135bb5936b3fb8522c3338 (diff)
Add some checks for "character not found"; this should fix some
fuzz-testing failures we're seeing. svn path=/trunk/; revision=39795
Diffstat (limited to 'epan/dissectors/packet-sip.c')
-rw-r--r--epan/dissectors/packet-sip.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/epan/dissectors/packet-sip.c b/epan/dissectors/packet-sip.c
index 177c4b27df..910f5120ae 100644
--- a/epan/dissectors/packet-sip.c
+++ b/epan/dissectors/packet-sip.c
@@ -1452,7 +1452,7 @@ dissect_sip_authorization_item(tvbuff_t *tvb, proto_tree *tree, gint start_offse
current_offset = start_offset;
equals_offset = tvb_find_guint8(tvb, current_offset + 1, line_end_offset - (current_offset + 1), '=');
- if(current_offset == -1){
+ if(equals_offset == -1){
/* malformed parameter */
return -1;
}
@@ -1484,6 +1484,10 @@ found:
}else if(c=='"'){
/* Do we have a quoted string ? */
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 */