From: Vsevolod Stakhov Date: Fri, 10 Sep 2021 19:18:44 +0000 (+0100) Subject: [Minor] Try to deal with broken CD headers X-Git-Tag: 3.1~178 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=064a12b377b10d7408b4fcf9ec7861426fb85129;p=thirdparty%2Frspamd.git [Minor] Try to deal with broken CD headers --- diff --git a/src/libmime/content_type.c b/src/libmime/content_type.c index 88102ad2c5..40f0fd3518 100644 --- a/src/libmime/content_type.c +++ b/src/libmime/content_type.c @@ -832,6 +832,12 @@ rspamd_content_disposition_parse (const gchar *in, struct rspamd_content_disposition *res = NULL, val; if (rspamd_content_disposition_parser (in, len, &val, pool)) { + + if (val.type == RSPAMD_CT_UNKNOWN) { + /* 'Fix' type to attachment as MUA does */ + val.type = RSPAMD_CT_ATTACHMENT; + } + res = rspamd_mempool_alloc (pool, sizeof (val)); memcpy (res, &val, sizeof (val)); res->lc_data = rspamd_mempool_alloc (pool, len + 1); diff --git a/src/ragel/content_disposition_parser.rl b/src/ragel/content_disposition_parser.rl index cdef4db46d..f1b0172b7c 100644 --- a/src/ragel/content_disposition_parser.rl +++ b/src/ragel/content_disposition_parser.rl @@ -122,5 +122,5 @@ rspamd_content_disposition_parser (const char *data, size_t len, struct rspamd_c free (st_storage.data); } - return cd->type != RSPAMD_CT_UNKNOWN; + return cd->attrs != NULL || cd->type != RSPAMD_CT_UNKNOWN; }