[Tarantool-patches] [PATCH] box: remove context from stack

Maria Khaydich maria.khaydich at tarantool.org
Tue Jun 9 13:35:18 MSK 2020


I suppose no tests are needed since this one is pretty straightforward.
----------------------------------------------------------------------
 
Lua stack was broken because we forgot to clear the context
in case of an error when return value of called function was
not serializable.
 
Closes #4617
---
Branch:
https://github.com/tarantool/tarantool/compare/eljashm/gh-4617-broken-lua-stack  
Issue:
https://github.com/tarantool/tarantool/issues/4617  
 
@ChangeLog
Remove context from lua stack in case of an error.
 
 src/box/lua/call.c | 1 +
 1 file changed, 1 insertion(+)
diff --git a/src/box/lua/call.c b/src/box/lua/call.c
index 6588ec2fa..7ab49983d 100644
--- a/src/box/lua/call.c
+++ b/src/box/lua/call.c
@@ -436,6 +436,7 @@ port_lua_do_dump(struct port *base, struct mpstream *stream,
     int top = lua_gettop(L);
     if (lua_cpcall(L, handler, &ctx) != 0) {
         luaT_toerror(port->L);
+        lua_pop(L, 1); 
         return -1;
     }
     lua_settop(L, top);
-- 
2.24.0
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.tarantool.org/pipermail/tarantool-patches/attachments/20200609/8500fe9f/attachment.html>


More information about the Tarantool-patches mailing list