From 14ab88afca52e61e85be5a667a90b5ca4c6905e1 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Fri, 19 Aug 2016 17:13:00 +0100 Subject: [PATCH] [Minor] Do not traverse empty HTML tree --- src/lua/lua_html.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/src/lua/lua_html.c b/src/lua/lua_html.c index f21432e9f..bad085450 100644 --- a/src/lua/lua_html.c +++ b/src/lua/lua_html.c @@ -438,26 +438,28 @@ lua_html_foreach_tag (lua_State *L) tagname = luaL_checkstring (L, 2); if (hc && tagname && lua_isfunction (L, 3)) { - if (strcmp (tagname, "any") == 0) { - id = -1; - } - else { - id = rspamd_html_tag_by_name (tagname); + if (hc->html_tags) { + if (strcmp (tagname, "any") == 0) { + id = -1; + } + else { + id = rspamd_html_tag_by_name (tagname); - if (id == -1) { - return luaL_error (L, "invalid tagname: %s", tagname); + if (id == -1) { + return luaL_error (L, "invalid tagname: %s", tagname); + } } - } - lua_pushvalue (L, 3); - ud.cbref = luaL_ref (L, LUA_REGISTRYINDEX); - ud.L = L; - ud.tag_id = id; + lua_pushvalue (L, 3); + ud.cbref = luaL_ref (L, LUA_REGISTRYINDEX); + ud.L = L; + ud.tag_id = id; - g_node_traverse (hc->html_tags, G_PRE_ORDER, G_TRAVERSE_ALL, -1, - lua_html_node_foreach_cb, &ud); + g_node_traverse (hc->html_tags, G_PRE_ORDER, G_TRAVERSE_ALL, -1, + lua_html_node_foreach_cb, &ud); - luaL_unref (L, LUA_REGISTRYINDEX, ud.cbref); + luaL_unref (L, LUA_REGISTRYINDEX, ud.cbref); + } } else { return luaL_error (L, "invalid arguments"); -- 2.39.5