]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
fix bug 7450 - Parsing fails if From header contains angle brackets
authorLuigi Rizzo <rizzo@icir.org>
Sat, 18 Nov 2006 17:59:35 +0000 (17:59 +0000)
committerLuigi Rizzo <rizzo@icir.org>
Sat, 18 Nov 2006 17:59:35 +0000 (17:59 +0000)
(the bug was only in a corner case where the < was right after the
opening quote, and the fix is trivial).

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@47823 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 74e319919c4eca2a8bbcad2718938289784124dd..a81fbb7ab524379d90f20e7cbc82f90b866d0e5f 100644 (file)
@@ -8748,11 +8748,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;
@@ -8762,7 +8763,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 */