]> source.dussan.org Git - rspamd.git/commitdiff
[Fix] Fix off-by-one with init check
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 18 Nov 2020 17:50:19 +0000 (17:50 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 18 Nov 2020 17:50:19 +0000 (17:50 +0000)
src/lua/lua_text.c
test/lua/unit/rspamd_text.lua

index 99b8b815184d89a09c23ea37768ce6abd5f6f071..dbbba98382b31babd37e2b85275c2894a49bdcac 100644 (file)
@@ -1358,7 +1358,7 @@ lua_text_find (lua_State *L)
                        init = relative_pos_start (lua_tointeger (L, 3), t->len);
                }
 
-               if (init >= t->len) {
+               if (init > t->len) {
                        return luaL_error (L, "invalid arguments to find: init too large");
                }
 
index 4e3a5e8e7f11eb79583df57452db3cb90ec4b3a5..3e6d0fff7c4f359fb078ef98cf486f15e399b346 100644 (file)
@@ -37,6 +37,8 @@ context("Rspamd_text:find() test", function()
     {{'foobarfoo', 'bar'}, {4, 6}},
     {{'foobarfoo', 'baz'}, nil},
     {{'foobarfoo', 'rfoo'}, {6, 9}},
+    {{'foo', 'bar'}, nil},
+    {{'x', 'xxxx'}, nil},
   }
 
   for _, case in ipairs(cases) do