From: Vsevolod Stakhov Date: Fri, 19 Aug 2016 16:13:00 +0000 (+0100) Subject: [Minor] Do not traverse empty HTML tree X-Git-Tag: 1.3.4~22 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=14ab88afca52e61e85be5a667a90b5ca4c6905e1;p=thirdparty%2Frspamd.git [Minor] Do not traverse empty HTML tree --- diff --git a/src/lua/lua_html.c b/src/lua/lua_html.c index f21432e9f6..bad0854505 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");