]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Check types in ucl `parse_text` method
authorVsevolod Stakhov <vsevolod@rspamd.com>
Sun, 27 Nov 2022 19:44:30 +0000 (19:44 +0000)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Sun, 27 Nov 2022 19:44:30 +0000 (19:44 +0000)
contrib/libucl/lua_ucl.c

index 0d934b771e067b5b74ab14f5914a585fce82abdf..c2e39c462bb5122ebdcad5a0eec5d68c7035b93a 100644 (file)
@@ -885,7 +885,7 @@ lua_ucl_parser_parse_text (lua_State *L)
        if (lua_type (L, 2) == LUA_TUSERDATA) {
                t = lua_touserdata (L, 2);
        }
-       else {
+       else if (lua_type (L, 2) == LUA_TSTRING) {
                const gchar *s;
                gsize len;
                static struct _rspamd_lua_text st_t;
@@ -896,6 +896,9 @@ lua_ucl_parser_parse_text (lua_State *L)
 
                t = &st_t;
        }
+       else {
+               return luaL_error(L, "invalid argument as input, expected userdata or a string");
+       }
 
        if (lua_type (L, 3) == LUA_TSTRING) {
                type = lua_ucl_str_to_parse_type (lua_tostring (L, 3));