From: Vsevolod Stakhov Date: Tue, 14 Jul 2015 12:56:05 +0000 (+0100) Subject: Fix splitting in case of bogus regexp. X-Git-Tag: 1.0.0~375 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4271f629ede6bbe9e5b4cbc8346c8b943dedab18;p=thirdparty%2Frspamd.git Fix splitting in case of bogus regexp. --- diff --git a/src/lua/lua_regexp.c b/src/lua/lua_regexp.c index 2f7ea3ea16..75e54bab5c 100644 --- a/src/lua/lua_regexp.c +++ b/src/lua/lua_regexp.c @@ -568,6 +568,9 @@ lua_regexp_split (lua_State *L) lua_rawseti (L, -2, ++i); matched = TRUE; } + else if (start == end) { + break; + } old_start = end; } diff --git a/test/lua/unit/regxep.lua b/test/lua/unit/regxep.lua index d0b1c422fa..0bb4db9351 100644 --- a/test/lua/unit/regxep.lua +++ b/test/lua/unit/regxep.lua @@ -68,6 +68,9 @@ context("Regexp unit tests", function() {'\\s', ' one two ', {'one', 'two'}}, -- multiple delimiters {'\\s', ' one ', {'one'}}, -- multiple delimiters {'[:,]', ',,,:::one,two,,', {'one', 'two'}}, -- multiple delimiters + {'[\\|\\s]', '16265 | 1.1.1.0/22 | TR | ripencc | 2014-02-28', + {'16265', '1.1.1.0/22', 'TR', 'ripencc', '2014-02-28'}}, -- practical + {'|', '16265 | 1.1.1.0/22 | TR | ripencc | 2014-02-28', {}} -- bad re } for _,c in ipairs(cases) do