diff options
author | Benny Prijono <bennylp@teluu.com> | 2010-10-13 11:17:51 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2010-10-13 11:17:51 +0000 |
commit | 65602b9e9eaea6593544c5904e827b09f8e52904 (patch) | |
tree | 11d34b397b2b63bd562f00ea6a8ee6ee82396b91 | |
parent | c9051bfc2f89b7d3383299c0c890bb998631278b (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.c | 5 | ||||
-rw-r--r-- | pjsip/src/pjsip/sip_parser.c | 3 |
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, ¶m->name, ¶m->value, - PJSIP_PARSE_REMOVE_QUOTE); + int_parse_param(scanner, ctx->pool, ¶m->name, ¶m->value, 0); pj_list_push_back(&hdr->media.param, param); } |