lua plugin: Don't destroy interpreter early
authorPavel Rochnyack <pavel2000@ngs.ru>
Wed, 1 May 2019 12:50:21 +0000 (19:50 +0700)
committerPavel Rochnyack <pavel2000@ngs.ru>
Wed, 1 May 2019 12:50:21 +0000 (19:50 +0700)
If script successfully registered at least one callback,
destroying interpreter will cause Collectd crash when
that callback will be called.

Unfortunately, there is no way to unregister these callbacks

src/lua.c

index d1c0085..b5d3ce5 100644 (file)
--- a/src/lua.c
+++ b/src/lua.c
@@ -471,9 +471,6 @@ static int lua_script_load(const char *script_path) /* {{{ */
     else
       ERROR("Lua plugin: Executing script \"%s\" failed:\n%s",
             script_path, errmsg);
-
-    lua_script_free(script);
-    return -1;
   }
 
   /* Append this script to the global list of scripts. */
@@ -487,6 +484,9 @@ static int lua_script_load(const char *script_path) /* {{{ */
     scripts = script;
   }
 
+  if (status != 0)
+    return -1;
+
   return 0;
 } /* }}} int lua_script_load */