From d23b07a9ff999275c09957cb385e10cb729abd17 Mon Sep 17 00:00:00 2001 From: Hans Dedecker Date: Mon, 2 Nov 2015 11:16:10 +0100 Subject: [PATCH] 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 --- lua/ubus.c | 3 +++ 1 file changed, 3 insertions(+) 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); } } -- 2.25.1