From 0eb4754b312ee781af473c064f97cfa87affb784 Mon Sep 17 00:00:00 2001 From: gaopan Date: Thu, 7 May 2015 16:52:48 +0800 Subject: [PATCH] @fix udp_address, in big-endian machine maybe error --- lualib-src/lua-socket.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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;