diff options
author | rizzo <rizzo@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-11-18 18:03:42 +0000 |
---|---|---|
committer | rizzo <rizzo@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-11-18 18:03:42 +0000 |
commit | ed3d16c4d0c38bc0742880e468c41c802c03b367 (patch) | |
tree | 28551cfd66f1aaf5dfc992c415e8be6fc21d6020 | |
parent | 85284832366a021ecb6f4695b13dc09396ed176d (diff) |
Merged revisions 47823 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r47823 | rizzo | 2006-11-18 18:59:35 +0100 (Sat, 18 Nov 2006) | 5 lines
fix bug 7450 - Parsing fails if From header contains angle brackets
(the bug was only in a corner case where the < was right after the
opening quote, and the fix is trivial).
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@47824 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r-- | channels/chan_sip.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 5668dc780..e245c7295 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -8925,11 +8925,12 @@ static char *get_calleridname(const char *input, char *output, size_t outputsize if (!end || end == input) /* we require a part in brackets */ return NULL; - /* move away from "<" */ - end--; + end--; /* move just before "<" */ - /* we found "name" */ - if (tmp && tmp < end) { + if (tmp && tmp <= end) { + /* The quote (tmp) precedes the bracket (end+1). + * Find the matching quote and return the content. + */ end = strchr(tmp+1, '"'); if (!end) return NULL; @@ -8939,7 +8940,7 @@ static char *get_calleridname(const char *input, char *output, size_t outputsize bytes = maxbytes; ast_copy_string(output, tmp + 1, bytes); } else { - /* we didn't find "name" */ + /* No quoted string, or it is inside brackets. */ /* clear the empty characters in the begining*/ input = ast_skip_blanks(input); /* clear the empty characters in the end */ |