From 4bfa9feca4ad235dad4bd327dbe59617f60a231b Mon Sep 17 00:00:00 2001 From: "Dmitry E. Oboukhov" <unera@debian.org> Date: Mon, 18 Aug 2014 18:19:30 +0400 Subject: [PATCH] Fix trash in socket:peername/name if it is UNIX-socket. --- src/lua/bsdsocket.cc | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/lua/bsdsocket.cc b/src/lua/bsdsocket.cc index 67ac0d9764..35d47bf1f8 100644 --- a/src/lua/bsdsocket.cc +++ b/src/lua/bsdsocket.cc @@ -629,10 +629,16 @@ lbox_bsdsocket_push_addr(struct lua_State *L, lua_pushliteral(L, "unix/"); lua_rawset(L, -3); - lua_pushliteral(L, "port"); - lua_pushstring(L, - ((struct sockaddr_un *)addr)->sun_path); - lua_rawset(L, -3); + if (alen > sizeof(addr->sa_family)) { + lua_pushliteral(L, "port"); + lua_pushstring(L, + ((struct sockaddr_un *)addr)->sun_path); + lua_rawset(L, -3); + } else { + lua_pushliteral(L, "port"); + lua_pushliteral(L, ""); + lua_rawset(L, -3); + } break; default: /* unknown family */ -- GitLab