@@ -303,15 +303,6 @@ local function detect_archive_flaw(part, arch, log_obj) | |||
end | |||
exports.mime_part_heuristic = function(part, log_obj) | |||
if part:is_image() then | |||
local img = part:get_image() | |||
local img_type = img:get_type():lower() | |||
if img_type == 'jpeg' then img_type = 'jpg' end | |||
return img_type,60 | |||
end | |||
if part:is_archive() then | |||
local arch = part:get_archive() | |||
return detect_archive_flaw(part, arch, log_obj) |
@@ -380,6 +380,47 @@ local patterns = { | |||
} | |||
} | |||
}, | |||
jpg = { | |||
matches = { | |||
{ -- JPEG2000 | |||
hex = [[0000000c6a5020200d0a870a]], | |||
relative_position = 0, | |||
weight = 60, | |||
}, | |||
{ | |||
string = [[^\x{ff}\x{d8}\x{ff}(?:[\x{e0}\x{e1}])]], | |||
weight = 60, | |||
position = 4, | |||
}, | |||
}, | |||
}, | |||
png = { | |||
matches = { | |||
{ | |||
string = [[^\x{89}PNG\x{0d}\x{0a}\x{1a}\x{0a}]], | |||
position = 8, | |||
weight = 60, | |||
}, | |||
} | |||
}, | |||
gif = { | |||
matches = { | |||
{ | |||
string = [[^GIF8\d]], | |||
position = 5, | |||
weight = 60, | |||
}, | |||
} | |||
}, | |||
bmp = { | |||
matches = { | |||
{ | |||
string = [[^BM...\x{00}\x{00}\x{00}\x{00}]], | |||
position = 9, | |||
weight = 60, | |||
}, | |||
} | |||
}, | |||
} | |||
return patterns |