summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2010-10-13 11:17:51 +0000
committerBenny Prijono <bennylp@teluu.com>2010-10-13 11:17:51 +0000
commit65602b9e9eaea6593544c5904e827b09f8e52904 (patch)
tree11d34b397b2b63bd562f00ea6a8ee6ee82396b91
parentc9051bfc2f89b7d3383299c0c890bb998631278b (diff)
Fixed #1147 (Bug in parsing multipart message bodies (thanks Johan Lantz for the report)): leave the quote in parameter values and let the multipart code handle this instead
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3342 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjsip/src/pjsip/sip_multipart.c5
-rw-r--r--pjsip/src/pjsip/sip_parser.c3
2 files changed, 6 insertions, 2 deletions
diff --git a/pjsip/src/pjsip/sip_multipart.c b/pjsip/src/pjsip/sip_multipart.c
index a3311504..7a910636 100644
--- a/pjsip/src/pjsip/sip_multipart.c
+++ b/pjsip/src/pjsip/sip_multipart.c
@@ -521,6 +521,11 @@ PJ_DEF(pjsip_msg_body*) pjsip_multipart_parse(pj_pool_t *pool,
ctype_param = pjsip_param_find(&ctype->param, &STR_BOUNDARY);
if (ctype_param) {
boundary = ctype_param->value;
+ if (boundary.slen>2 && *boundary.ptr=='"') {
+ /* Remove quote */
+ boundary.ptr++;
+ boundary.slen -= 2;
+ }
TRACE_((THIS_FILE, "Boundary is specified: '%.*s'", (int)boundary.slen,
boundary.ptr));
}
diff --git a/pjsip/src/pjsip/sip_parser.c b/pjsip/src/pjsip/sip_parser.c
index de68dd8a..61559601 100644
--- a/pjsip/src/pjsip/sip_parser.c
+++ b/pjsip/src/pjsip/sip_parser.c
@@ -1856,8 +1856,7 @@ static pjsip_hdr* parse_hdr_content_type( pjsip_parse_ctx *ctx )
/* Parse media parameters */
while (*scanner->curptr == ';') {
pjsip_param *param = PJ_POOL_ALLOC_T(ctx->pool, pjsip_param);
- int_parse_param(scanner, ctx->pool, &param->name, &param->value,
- PJSIP_PARSE_REMOVE_QUOTE);
+ int_parse_param(scanner, ctx->pool, &param->name, &param->value, 0);
pj_list_push_back(&hdr->media.param, param);
}