From: Timo Sirainen Date: Thu, 22 Sep 2011 10:09:18 +0000 (+0300) Subject: lib-mail: Added broken input workaround to rfc822_parse_content_param(). X-Git-Tag: 2.1.beta1~139 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a37b4f6dfcf753c0071ff0480b9510dce0d6f4ae;p=thirdparty%2Fdovecot%2Fcore.git lib-mail: Added broken input workaround to rfc822_parse_content_param(). --- diff --git a/src/lib-mail/rfc822-parser.c b/src/lib-mail/rfc822-parser.c index b3eb3782c4..b217d5e2b4 100644 --- a/src/lib-mail/rfc822-parser.c +++ b/src/lib-mail/rfc822-parser.c @@ -408,6 +408,15 @@ int rfc822_parse_content_param(struct rfc822_parser_context *ctx, } else if (*ctx->data == '"') { ret = rfc822_parse_quoted_string(ctx, tmp); str_unescape(str_c_modifiable(tmp) + value_pos); + } else if (ctx->data != ctx->end && *ctx->data == '=') { + /* workaround for broken input: + name==?utf-8?b?...?= */ + while (ctx->data != ctx->end && *ctx->data != ';' && + *ctx->data != ' ' && *ctx->data != '\t' && + *ctx->data != '\r' && *ctx->data != '\n') { + str_append_c(tmp, *ctx->data); + ctx->data++; + } } else { ret = rfc822_parse_mime_token(ctx, tmp); }