diff --git a/lualib-src/lua-cluster.c b/lualib-src/lua-cluster.c index b3b8a9d1..92134ced 100644 --- a/lualib-src/lua-cluster.c +++ b/lualib-src/lua-cluster.c @@ -153,6 +153,8 @@ lunpackrequest(lua_State *L) { static int lpackresponse(lua_State *L) { uint32_t session = luaL_checkunsigned(L,1); + // clusterd.lua:command.socket call lpackresponse, + // and the msg/sz is return by skynet.rawcall , so don't free(msg) void * msg = lua_touserdata(L,2); size_t sz = luaL_checkunsigned(L, 3); @@ -161,8 +163,6 @@ lpackresponse(lua_State *L) { fill_uint32(buf+2, session); memcpy(buf+6,msg,sz); - skynet_free(msg); - lua_pushlstring(L, (const char *)buf, sz+6); return 1;