mistake when copy content_type.param

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,
        There is a mistake when copy params of content-type at line
1065 of sip_parser.c.
If ctype_hdr->media.param is an empty list, body->content_type.param
wouldn't be empty after copy because  param->next is pointed to
&ctype_hdr->media.param, not &body->content_type.param.
Then pjsip_endpt_create_request_fwd() will always loop inside
pjsip_param_clone().
       stateless_proxy.c is helpful to repeat this issue.

regards,
Gang

1050	        if (ctype_hdr && scanner->curptr!=scanner->end) {
1051	            /* New: if Content-Type indicates that this is a multipart
1052	             * message body, parse it.
1053	             */
1054	            const pj_str_t STR_MULTIPART = { "multipart", 9 };
1055	            pjsip_msg_body *body;
1056	
1057	            if (pj_stricmp(&ctype_hdr->media.type, &STR_MULTIPART)==0) {
1058	                body = pjsip_multipart_parse(pool, scanner->curptr,
1059	                                             scanner->end -
scanner->curptr,
1060	                                             &ctype_hdr->media, 0);
1061	            } else {
1062	                body = PJ_POOL_ALLOC_T(pool, pjsip_msg_body);
1063	                body->content_type.type = ctype_hdr->media.type;
1064	                body->content_type.subtype = ctype_hdr->media.subtype;
1065	                body->content_type.param = ctype_hdr->media.param;
1066	
1067	                body->data = scanner->curptr;
1068	                body->len = scanner->end - scanner->curptr;
1069	                body->print_body = &pjsip_print_text_body;
1070	                body->clone_data = &pjsip_clone_text_data;
1071	            }
1072	
1073	            msg->body = body;
1074	        }



[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux