Return lua errors not falco_exceptions

In C functions that implement lua functions, don't directly throw
falco_exceptions, which results in opaque error messages like:

Mon Feb 27 10:09:58 2017: Runtime error: Error invoking function output:
C++ exception. Exiting.

Instead, return lua errors via lua_error().
This commit is contained in:
Mark Stemm 2017-02-27 11:57:36 -08:00
parent 7d711dbb32
commit fb36af12cf
2 changed files with 8 additions and 4 deletions

View File

@ -81,7 +81,8 @@ int falco_formats::format_event (lua_State *ls)
!lua_isstring(ls, -2) || !lua_isstring(ls, -2) ||
!lua_isstring(ls, -3) || !lua_isstring(ls, -3) ||
!lua_islightuserdata(ls, -4)) { !lua_islightuserdata(ls, -4)) {
throw falco_exception("Invalid arguments passed to format_event()\n"); lua_pushstring(ls, "Invalid arguments passed to format_event()");
lua_error(ls);
} }
sinsp_evt* evt = (sinsp_evt*)lua_topointer(ls, 1); sinsp_evt* evt = (sinsp_evt*)lua_topointer(ls, 1);
const char *rule = (char *) lua_tostring(ls, 2); const char *rule = (char *) lua_tostring(ls, 2);

View File

@ -49,7 +49,8 @@ int falco_rules::clear_filters(lua_State *ls)
{ {
if (! lua_islightuserdata(ls, -1)) if (! lua_islightuserdata(ls, -1))
{ {
throw falco_exception("Invalid arguments passed to clear_filters()\n"); lua_pushstring(ls, "Invalid arguments passed to clear_filters()");
lua_error(ls);
} }
falco_rules *rules = (falco_rules *) lua_topointer(ls, -1); falco_rules *rules = (falco_rules *) lua_topointer(ls, -1);
@ -70,7 +71,8 @@ int falco_rules::add_filter(lua_State *ls)
! lua_istable(ls, -2) || ! lua_istable(ls, -2) ||
! lua_istable(ls, -1)) ! lua_istable(ls, -1))
{ {
throw falco_exception("Invalid arguments passed to add_filter()\n"); lua_pushstring(ls, "Invalid arguments passed to add_filter()");
lua_error(ls);
} }
falco_rules *rules = (falco_rules *) lua_topointer(ls, -4); falco_rules *rules = (falco_rules *) lua_topointer(ls, -4);
@ -122,7 +124,8 @@ int falco_rules::enable_rule(lua_State *ls)
! lua_isstring(ls, -2) || ! lua_isstring(ls, -2) ||
! lua_isnumber(ls, -1)) ! lua_isnumber(ls, -1))
{ {
throw falco_exception("Invalid arguments passed to enable_rule()\n"); lua_pushstring(ls, "Invalid arguments passed to enable_rule()");
lua_error(ls);
} }
falco_rules *rules = (falco_rules *) lua_topointer(ls, -3); falco_rules *rules = (falco_rules *) lua_topointer(ls, -3);