aboutsummaryrefslogtreecommitdiffstats
path: root/src/lua/lua_regexp.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2019-09-27 11:14:46 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2019-09-27 11:14:46 +0100
commit24a0be9cf3f7aa22160a43e06fa94924b7e7065a (patch)
tree89165a2be9b2eaafa96f266675913f9925cfc8d7 /src/lua/lua_regexp.c
parent71246a1a926cc088de211b5a87a6ed5eacd87270 (diff)
downloadrspamd-24a0be9cf3f7aa22160a43e06fa94924b7e7065a.tar.gz
rspamd-24a0be9cf3f7aa22160a43e06fa94924b7e7065a.zip
[Minor] Fix re matching when len == 0
Diffstat (limited to 'src/lua/lua_regexp.c')
-rw-r--r--src/lua/lua_regexp.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/lua/lua_regexp.c b/src/lua/lua_regexp.c
index 95f40f8f0..a677f7195 100644
--- a/src/lua/lua_regexp.c
+++ b/src/lua/lua_regexp.c
@@ -543,7 +543,7 @@ lua_regexp_search (lua_State *L)
raw = lua_toboolean (L, 3);
}
- if (data) {
+ if (data && len > 0) {
if (lua_gettop (L) >= 4) {
capture = TRUE;
captures = g_array_new (FALSE, TRUE,
@@ -633,7 +633,7 @@ lua_regexp_match (lua_State *L)
raw = lua_toboolean (L, 3);
}
- if (data) {
+ if (data && len > 0) {
if (re->match_limit > 0) {
len = MIN (len, re->match_limit);
}
@@ -694,7 +694,7 @@ lua_regexp_matchn (lua_State *L)
raw = lua_toboolean (L, 4);
}
- if (data) {
+ if (data && len > 0) {
matches = 0;
if (re->match_limit > 0) {
@@ -770,10 +770,11 @@ lua_regexp_split (lua_State *L)
len = MIN (len, re->match_limit);
}
- if (data) {
+ if (data && len > 0) {
lua_newtable (L);
i = 0;
old_start = data;
+
while (rspamd_regexp_search (re->re, data, len, &start, &end, FALSE,
NULL)) {
if (start - old_start > 0) {