From: Hans Dedecker Date: Mon, 2 Nov 2015 10:16:10 +0000 (+0100) Subject: lua: Fix stack imbalance in ubus_event_handler X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fubus.git;a=commitdiff_plain;h=d23b07a9ff999275c09957cb385e10cb729abd17 lua: Fix stack imbalance in ubus_event_handler The value from getglobal wasn't being removed from the stack, resulting in an ever growing stack in the ubus event handler. Signed-off-by: Karl Vogel Signed-off-by: Hans Dedecker --- diff --git a/lua/ubus.c b/lua/ubus.c index a48fb7d..2903e7b 100644 --- a/lua/ubus.c +++ b/lua/ubus.c @@ -597,10 +597,13 @@ ubus_event_handler(struct ubus_context *ctx, struct ubus_event_handler *ev, lua_getglobal(state, "__ubus_cb_event"); lua_rawgeti(state, -1, listener->r); + lua_remove(state, -2); if (lua_isfunction(state, -1)) { ubus_lua_parse_blob_array(state, blob_data(msg), blob_len(msg), true); lua_call(state, 1, 0); + } else { + lua_pop(state, 1); } }