From a089a38e5ca71881797683ccf0f8c00237e95573 Mon Sep 17 00:00:00 2001 From: Alexander Moisseev Date: Fri, 25 Jan 2019 10:14:52 +0300 Subject: [Minor] mime_types: Do not treat numbers in brackets as double extension Example: PDF417(3.2.4).msi --- src/plugins/lua/mime_types.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/lua/mime_types.lua b/src/plugins/lua/mime_types.lua index a7a859e53..6b7ddbdc9 100644 --- a/src/plugins/lua/mime_types.lua +++ b/src/plugins/lua/mime_types.lua @@ -854,7 +854,7 @@ local function check_mime_type(task) if #parts > 2 then -- We need to ensure that next-to-last extension is an extension, -- so we check for its length and if it is not a number or date - if #ext2 <= 4 and not string.match(ext2, '^%d+$') then + if #ext2 <= 4 and not string.match(ext2, '^%d+[%]%)]?$') then -- Use the greatest badness multiplier if not badness_mult or -- cgit v1.2.3 From dd55b866e77be19e5a61b7abfcbd890d807839fd Mon Sep 17 00:00:00 2001 From: Alexander Moisseev Date: Fri, 25 Jan 2019 10:33:39 +0300 Subject: [Minor] mime_types: Add application/x-msi CT --- src/plugins/lua/mime_types.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/lua/mime_types.lua b/src/plugins/lua/mime_types.lua index 6b7ddbdc9..206284a25 100644 --- a/src/plugins/lua/mime_types.lua +++ b/src/plugins/lua/mime_types.lua @@ -479,7 +479,7 @@ local full_extensions_map = { {"mqv", "video/quicktime"}, {"ms", "application/x-troff-ms"}, {"msg", "application/vnd.ms-outlook"}, - {"msi", "application/octet-stream"}, + {"msi", {"application/x-msi", "application/octet-stream"}}, {"mso", "application/octet-stream"}, {"mts", "video/vnd.dlna.mpeg-tts"}, {"mtx", "application/xml"}, -- cgit v1.2.3 From 41dab157a0787100773f672c74cf46ac7a5bd9fa Mon Sep 17 00:00:00 2001 From: Alexander Moisseev Date: Fri, 25 Jan 2019 11:00:59 +0300 Subject: [Test] Add tests for mime_types --- test/functional/cases/105_mimetypes.robot | 10 ++++++++++ test/functional/messages/next2last-digits_in_brackets.eml | 9 +++++++++ test/functional/messages/next2last-digits_in_parens.eml | 9 +++++++++ 3 files changed, 28 insertions(+) create mode 100644 test/functional/messages/next2last-digits_in_brackets.eml create mode 100644 test/functional/messages/next2last-digits_in_parens.eml diff --git a/test/functional/cases/105_mimetypes.robot b/test/functional/cases/105_mimetypes.robot index 49c5ffc67..54a9cb4bb 100644 --- a/test/functional/cases/105_mimetypes.robot +++ b/test/functional/cases/105_mimetypes.robot @@ -33,6 +33,16 @@ Dotted file name is followed by Bad Extension Check Rspamc ${result} MIME_BAD_EXTENSION \\(\\d+\\.\\d+\\)\\[exe\\]\\n re=1 Should Not Contain ${result.stdout} MIME_DOUBLE_BAD_EXTENSION +Dotted numbers in parentheses is followed by Bad Extension + ${result} = Scan Message With Rspamc ${TESTDIR}/messages/next2last-digits_in_parens.eml + Check Rspamc ${result} MIME_BAD_EXTENSION \\(\\d+\\.\\d+\\)\\[msi\\]\\n re=1 + Should Not Contain ${result.stdout} MIME_DOUBLE_BAD_EXTENSION + +Dotted numbers in square brackets is followed by Bad Extension + ${result} = Scan Message With Rspamc ${TESTDIR}/messages/next2last-digits_in_brackets.eml + Check Rspamc ${result} MIME_BAD_EXTENSION \\(\\d+\\.\\d+\\)\\[msi\\]\\n re=1 + Should Not Contain ${result.stdout} MIME_DOUBLE_BAD_EXTENSION + Rar4 ${result} = Scan Message With Rspamc ${TESTDIR}/messages/rar4.eml Check Rspamc ${result} MIME_BAD_EXTENSION \\(\\d+\\.\\d+\\)\\[exe\\]\\n re=1 diff --git a/test/functional/messages/next2last-digits_in_brackets.eml b/test/functional/messages/next2last-digits_in_brackets.eml new file mode 100644 index 000000000..9f2783213 --- /dev/null +++ b/test/functional/messages/next2last-digits_in_brackets.eml @@ -0,0 +1,9 @@ +Content-Type: multipart/mixed; boundary="------------D6BBFC1853527FEEDD26DC71" + +--------------D6BBFC1853527FEEDD26DC71 +Content-Type: application/x-msi; name="PDF417(3.2.4).msi" +Content-Transfer-Encoding: base64 +Content-Disposition: attachment; filename="PDF417(3.2.4).msi" + +MAo= +--------------D6BBFC1853527FEEDD26DC71-- diff --git a/test/functional/messages/next2last-digits_in_parens.eml b/test/functional/messages/next2last-digits_in_parens.eml new file mode 100644 index 000000000..efa90fa4c --- /dev/null +++ b/test/functional/messages/next2last-digits_in_parens.eml @@ -0,0 +1,9 @@ +Content-Type: multipart/mixed; boundary="------------D6BBFC1853527FEEDD26DC71" + +--------------D6BBFC1853527FEEDD26DC71 +Content-Type: application/x-msi; name="PDF417(3.2.4).msi" +Content-Transfer-Encoding: base64 +Content-Disposition: attachment; filename="PDF417[3.2.4].msi" + +MAo= +--------------D6BBFC1853527FEEDD26DC71-- -- cgit v1.2.3