From b574800a0a1403ed205720bb23db7e37b6b918ca Mon Sep 17 00:00:00 2001 From: Fred Nicolson Date: Fri, 1 Dec 2017 10:59:00 +0000 Subject: [PATCH] Fixed compile warnings and a memory leak Fixed -fPIC warnings and unused function warnings on GCC. Fixed fr::TcpSocket not calling freeaddrinfo() on failure to connect, causing a small leak. --- CMakeLists.txt | 2 +- include/frnetlib/NetworkEncoding.h | 5 ++++- include/frnetlib/Packet.h | 4 ++-- src/TcpSocket.cpp | 6 +++--- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9b00c30..aee8ba4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,7 +45,7 @@ if(USE_SSL) endif() if(NOT MSVC) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -std=c++14 -pthread") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -pthread") endif() # Set the library output directory diff --git a/include/frnetlib/NetworkEncoding.h b/include/frnetlib/NetworkEncoding.h index c5f7626..0097895 100644 --- a/include/frnetlib/NetworkEncoding.h +++ b/include/frnetlib/NetworkEncoding.h @@ -21,7 +21,10 @@ #include #define SOL_TCP SOL_SOCKET #define SHUT_RDWR SD_BOTH +#define UNUSED_VAR #else + +#define UNUSED_VAR __attribute__ ((unused)) #define closesocket(x) close(x) #define INVALID_SOCKET 0 #define SOCKET_ERROR (-1) @@ -95,7 +98,7 @@ inline void set_unix_socket_blocking(int32_t socket_descriptor, bool is_blocking #endif } -static void init_wsa() +static UNUSED_VAR void init_wsa() { #ifdef _WIN32 static WSADATA wsaData = WSAData(); diff --git a/include/frnetlib/Packet.h b/include/frnetlib/Packet.h index 614f13f..9a54dda 100644 --- a/include/frnetlib/Packet.h +++ b/include/frnetlib/Packet.h @@ -20,8 +20,8 @@ namespace fr { public: Packet() noexcept - : buffer_read_index(PACKET_HEADER_LENGTH), - buffer(PACKET_HEADER_LENGTH, '0') + : buffer(PACKET_HEADER_LENGTH, '0'), + buffer_read_index(PACKET_HEADER_LENGTH) { } diff --git a/src/TcpSocket.cpp b/src/TcpSocket.cpp index 035b6c1..9120610 100644 --- a/src/TcpSocket.cpp +++ b/src/TcpSocket.cpp @@ -117,12 +117,12 @@ namespace fr break; } - if(c == nullptr) - return Socket::Status::Error; - //We're done with this now, cleanup freeaddrinfo(info); + if(c == nullptr) + return Socket::Status::Error; + //Update state now we've got a valid socket descriptor remote_address = address + ":" + port; reconfigure_socket();