]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Issue #7541 - Handle multipart attachments to SIP messages - even if boundary is...
authorOlle Johansson <oej@edvina.net>
Fri, 16 Feb 2007 12:06:23 +0000 (12:06 +0000)
committerOlle Johansson <oej@edvina.net>
Fri, 16 Feb 2007 12:06:23 +0000 (12:06 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@54787 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index ec01afe6dc10fe617a230641eb969f2ca1800738..f8d357dda14c8a25d1f626201f5a587ae818db68 100644 (file)
@@ -4620,6 +4620,7 @@ static int find_sdp(struct sip_request *req)
        const char *search;
        char *boundary;
        unsigned int x;
+       int boundaryisquoted = FALSE;
 
        content_type = get_header(req, "Content-Type");
 
@@ -4639,15 +4640,24 @@ static int find_sdp(struct sip_request *req)
                return 0;
 
        search += 10;
-
        if (ast_strlen_zero(search))
                return 0;
 
+       /* If the boundary is quoted with ", remove quote */
+       if (*search == '\"')  {
+               search++;
+               boundaryisquoted = TRUE;
+       }
+
        /* make a duplicate of the string, with two extra characters
           at the beginning */
        boundary = ast_strdupa(search - 2);
        boundary[0] = boundary[1] = '-';
 
+       /* Remove final quote */
+       if (boundaryisquoted)
+               boundary[strlen(boundary) - 1] = '\0';
+
        /* search for the boundary marker, but stop when there are not enough
           lines left for it, the Content-Type header and at least one line of
           body */