aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrizzo <rizzo@f38db490-d61c-443f-a65b-d21fe96a405b>2006-11-18 18:03:42 +0000
committerrizzo <rizzo@f38db490-d61c-443f-a65b-d21fe96a405b>2006-11-18 18:03:42 +0000
commited3d16c4d0c38bc0742880e468c41c802c03b367 (patch)
tree28551cfd66f1aaf5dfc992c415e8be6fc21d6020
parent85284832366a021ecb6f4695b13dc09396ed176d (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.c11
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 */