Browse Source

[Minor] Add starting mark to patterns with offset 0

tags/2.0
Vsevolod Stakhov 4 years ago
parent
commit
231ab5e95d
2 changed files with 24 additions and 9 deletions
  1. 17
    2
      lualib/lua_magic/init.lua
  2. 7
    7
      lualib/lua_magic/patterns.lua

+ 17
- 2
lualib/lua_magic/init.lua View File

@@ -62,8 +62,14 @@ local function process_patterns(log_obj)
short_patterns[#short_patterns + 1] = {
str, match, pattern
}
lua_util.debugm(N, log_obj, 'add short pattern %s for ext %s',
str, pattern.ext)
if str:sub(1, 1) == '^' then
lua_util.debugm(N, log_obj, 'add head pattern %s for ext %s',
str, pattern.ext)
else
lua_util.debugm(N, log_obj, 'add short pattern %s for ext %s',
str, pattern.ext)
end


if max_short_offset < match.position then
max_short_offset = match.position
@@ -94,6 +100,12 @@ local function process_patterns(log_obj)
if match.string then
if match.relative_position and not match.position then
match.position = match.relative_position + #match.string

if match.relative_position == 0 then
if match.string:sub(1, 1) ~= '^' then
match.string = '^' .. match.string
end
end
end
add_processed(match.string, match, pattern)
elseif match.hex then
@@ -107,6 +119,9 @@ local function process_patterns(log_obj)
if match.relative_position and not match.position then
match.position = match.relative_position + #match.hex / 2
end
if match.relative_position == 0 then
table.insert(hex_table, 1, '^')
end
add_processed(table.concat(hex_table), match, pattern)
end
end

+ 7
- 7
lualib/lua_magic/patterns.lua View File

@@ -26,17 +26,17 @@ local patterns = {
-- These are alternatives
matches = {
{
string = [[%PDF-\d]],
string = [[^%PDF-\d]],
position = 6, -- must be end of the match, as that's how hyperscan works (or use relative_position)
weight = 60,
},
{
string = [[\012%PDF-\d]],
string = [[^\012%PDF-\d]],
position = 7,
weight = 60,
},
{
string = [[%FDF-\d]],
string = [[^%FDF-\d]],
position = 6,
weight = 60,
},
@@ -55,7 +55,7 @@ local patterns = {
rtf = {
matches = {
{
string = [[{\\rt]],
string = [[^{\\rt]],
position = 4,
weight = 60,
}
@@ -181,7 +181,7 @@ local patterns = {
bz2 = {
matches = {
{
string = "BZ[h0]",
string = "^BZ[h0]",
position = 3,
weight = 60,
},
@@ -215,7 +215,7 @@ local patterns = {
zst = {
matches = {
{
string = [[[\x{22}-\x{40}]\x{B5}\x{2F}\x{FD}]],
string = [[^[\x{22}-\x{40}]\x{B5}\x{2F}\x{FD}]],
position = 4,
weight = 60,
},
@@ -374,7 +374,7 @@ local patterns = {
dwg = {
matches = {
{
string = 'AC10[12][2-9]',
string = '^AC10[12][2-9]',
position = 6,
weight = 60,
}

Loading…
Cancel
Save