]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
daemon/ffimodule: fixed variable shadowing
authorMarek Vavruša <marek.vavrusa@nic.cz>
Wed, 20 May 2015 11:05:59 +0000 (13:05 +0200)
committerMarek Vavruša <marek.vavrusa@nic.cz>
Wed, 20 May 2015 11:05:59 +0000 (13:05 +0200)
daemon/ffimodule.c

index c95201c843b18f816606d80da820f705cde4eaa1..43349e1bf7d4f648d0d580eac1607837d35d60b2 100644 (file)
@@ -34,6 +34,9 @@ static inline lua_State *l_ffi_preface(struct kr_module *module, const char *cal
        lua_rawgeti(L, LUA_REGISTRYINDEX, (intptr_t)module->data);
        lua_getfield(L, -1, call);
        lua_remove(L, -2);
+       if (lua_isnil(L, -1)) {
+               return NULL;
+       }
        lua_pushlightuserdata(L, module);
        return L;
 }
@@ -86,12 +89,18 @@ static inline int l_ffi_call(lua_State *L, int argc)
 static int l_ffi_init(struct kr_module *module)
 {
        lua_State *L = l_ffi_preface(module, "init");
+       if (!L) {
+               return 0;
+       }
        return l_ffi_call(L, 1);
 }
 
 static int l_ffi_deinit(struct kr_module *module)
 {
        lua_State *L = l_ffi_preface(module, "deinit");
+       if (!L) {
+               return 0;
+       }
        int ret = l_ffi_call(L, 1);
        /* Free the layer API wrapper */
        lua_rawgeti(L, LUA_REGISTRYINDEX, (intptr_t)module->data);
@@ -179,7 +188,7 @@ static const knot_layer_api_t* l_ffi_layer(struct kr_module *module)
        lua_pop(L, 1);
        if (!api) {
                /* Fabricate layer API wrapping the Lua functions */
-               knot_layer_api_t *api = malloc(sizeof(*api));
+               api = malloc(sizeof(*api));
                if (api) {
                        api->begin = l_ffi_layer_begin;
                        api->finish = l_ffi_layer_finish;