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 <karl.vogel@gmail.com>
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
This commit is contained in:
Hans Dedecker 2015-11-02 11:16:10 +01:00 committed by Felix Fietkau
parent 33b2abf631
commit d23b07a9ff

View file

@ -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);
}
}