diff --git a/include/Nazara/Network/ENetPeer.inl b/include/Nazara/Network/ENetPeer.inl index c3ede0978..2a833e530 100644 --- a/include/Nazara/Network/ENetPeer.inl +++ b/include/Nazara/Network/ENetPeer.inl @@ -1,4 +1,4 @@ -// Copyright (C) 2017 Jérôme Leclercq +// Copyright (C) 2017 Jérôme Leclercq // This file is part of the "Nazara Engine - Network module" // For conditions of distribution and use, see copyright notice in Config.hpp @@ -8,6 +8,7 @@ namespace Nz { inline ENetPeer::ENetPeer(ENetHost* host, UInt16 peerId) : m_host(host), + m_state(ENetPeerState::Disconnected), m_incomingSessionID(0xFF), m_outgoingSessionID(0xFF), m_incomingPeerID(peerId), diff --git a/src/Nazara/Network/Linux/SocketPollerImpl.cpp b/src/Nazara/Network/Linux/SocketPollerImpl.cpp index d3287a815..b35a37ca5 100644 --- a/src/Nazara/Network/Linux/SocketPollerImpl.cpp +++ b/src/Nazara/Network/Linux/SocketPollerImpl.cpp @@ -48,7 +48,8 @@ namespace Nz NazaraAssert(!IsRegistered(socket), "Socket is already registered"); epoll_event entry; - entry.events = 0; + std::memset(&entry, 0, sizeof(epoll_event)); + entry.data.fd = socket; if (eventFlags & SocketPollEvent_Read) diff --git a/src/Nazara/Network/Posix/SocketImpl.cpp b/src/Nazara/Network/Posix/SocketImpl.cpp index 9d1f7bd0c..eddbf2063 100644 --- a/src/Nazara/Network/Posix/SocketImpl.cpp +++ b/src/Nazara/Network/Posix/SocketImpl.cpp @@ -25,6 +25,8 @@ namespace Nz NazaraAssert(handle != InvalidHandle, "Invalid handle"); IpAddressImpl::SockAddrBuffer nameBuffer; + std::fill(nameBuffer.begin(), nameBuffer.end(), 0); + socklen_t bufferLength = sizeof(sockaddr_in); SocketHandle newClient = accept(handle, reinterpret_cast(&nameBuffer), &bufferLength); @@ -376,7 +378,9 @@ namespace Nz NazaraAssert(handle != InvalidHandle, "Invalid handle"); IpAddressImpl::SockAddrBuffer nameBuffer; - socklen_t bufferLength = sizeof(sockaddr_in); + std::fill(nameBuffer.begin(), nameBuffer.end(), 0); + + socklen_t bufferLength = sizeof(nameBuffer.size()); if (getpeername(handle, reinterpret_cast(nameBuffer.data()), &bufferLength) == SOCKET_ERROR) { @@ -416,6 +420,8 @@ namespace Nz NazaraAssert(handle != InvalidHandle, "Invalid handle"); IpAddressImpl::SockAddrBuffer nameBuffer; + std::fill(nameBuffer.begin(), nameBuffer.end(), 0); + socklen_t bufferLength = sizeof(sockaddr_in); if (getsockname(handle, reinterpret_cast(nameBuffer.data()), &bufferLength) == SOCKET_ERROR) @@ -509,6 +515,8 @@ namespace Nz NazaraAssert(buffer && length > 0, "Invalid buffer"); IpAddressImpl::SockAddrBuffer nameBuffer; + std::fill(nameBuffer.begin(), nameBuffer.end(), 0); + socklen_t bufferLength = static_cast(nameBuffer.size()); IpAddress senderIp; @@ -580,6 +588,8 @@ namespace Nz msgHdr.msg_iovlen = static_cast(bufferCount); IpAddressImpl::SockAddrBuffer nameBuffer; + std::fill(nameBuffer.begin(), nameBuffer.end(), 0); + if (from) { msgHdr.msg_name = nameBuffer.data(); diff --git a/src/Nazara/Network/Win32/SocketImpl.cpp b/src/Nazara/Network/Win32/SocketImpl.cpp index fbc8beec3..b410af93c 100644 --- a/src/Nazara/Network/Win32/SocketImpl.cpp +++ b/src/Nazara/Network/Win32/SocketImpl.cpp @@ -33,6 +33,8 @@ namespace Nz NazaraAssert(handle != InvalidHandle, "Invalid handle"); IpAddressImpl::SockAddrBuffer nameBuffer; + std::fill(nameBuffer.begin(), nameBuffer.end(), 0); + int bufferLength = static_cast(nameBuffer.size()); SocketHandle newClient = accept(handle, reinterpret_cast(&nameBuffer), &bufferLength); @@ -392,6 +394,8 @@ namespace Nz NazaraAssert(handle != InvalidHandle, "Invalid handle"); IpAddressImpl::SockAddrBuffer nameBuffer; + std::fill(nameBuffer.begin(), nameBuffer.end(), 0); + int bufferLength = static_cast(nameBuffer.size()); if (getpeername(handle, reinterpret_cast(nameBuffer.data()), &bufferLength) == SOCKET_ERROR) @@ -413,6 +417,8 @@ namespace Nz NazaraAssert(handle != InvalidHandle, "Invalid handle"); IpAddressImpl::SockAddrBuffer nameBuffer; + std::fill(nameBuffer.begin(), nameBuffer.end(), 0); + int bufferLength = static_cast(nameBuffer.size()); if (getsockname(handle, reinterpret_cast(nameBuffer.data()), &bufferLength) == SOCKET_ERROR) @@ -537,6 +543,8 @@ namespace Nz NazaraAssert(buffer && length > 0, "Invalid buffer"); IpAddressImpl::SockAddrBuffer nameBuffer; + std::fill(nameBuffer.begin(), nameBuffer.end(), 0); + int bufferLength = static_cast(nameBuffer.size()); IpAddress senderIp; @@ -592,6 +600,8 @@ namespace Nz NazaraAssert(buffers && bufferCount > 0, "Invalid buffers"); IpAddressImpl::SockAddrBuffer nameBuffer; + std::fill(nameBuffer.begin(), nameBuffer.end(), 0); + int bufferLength = static_cast(nameBuffer.size()); IpAddress senderIp;