diff --git a/lualib-src/lua-socket.c b/lualib-src/lua-socket.c index 8ee60eb0..f28d8665 100644 --- a/lualib-src/lua-socket.c +++ b/lualib-src/lua-socket.c @@ -599,7 +599,9 @@ static int ludp_address(lua_State *L) { size_t sz = 0; const uint8_t * addr = (const uint8_t *)luaL_checklstring(L, 1, &sz); - int port = addr[1] * 256 + addr[2]; + uint16_t port = 0; + memcpy(&port, addr+1, sizeof(uint16_t)); + port = ntohs(port); const void * src = addr+3; char tmp[256]; int family;