Commit 856bcc0a9277fc8e9f99af073e36a4d986fdec6d

Authored by Patric Stout
1 parent 31ddd2c7

fix(connection): resolve() leaks memory when connection can't be made

Showing 1 changed file with 7 additions and 0 deletions
src/Connection.cpp
@@ -125,6 +125,13 @@ void Connection::resolve() @@ -125,6 +125,13 @@ void Connection::resolve()
125 hints.ai_socktype = SOCK_STREAM; 125 hints.ai_socktype = SOCK_STREAM;
126 hints.ai_flags = AI_ADDRCONFIG; 126 hints.ai_flags = AI_ADDRCONFIG;
127 127
  128 + // If we resolved previously, free the result.
  129 + if (this->m_host_resolved != nullptr)
  130 + {
  131 + freeaddrinfo(this->m_host_resolved);
  132 + this->m_host_resolved = nullptr;
  133 + }
  134 +
128 // Request the OS to resolve the hostname into an IP address. 135 // Request the OS to resolve the hostname into an IP address.
129 // We do this even if the hostname is already an IP address, as that 136 // We do this even if the hostname is already an IP address, as that
130 // makes for far easier code. 137 // makes for far easier code.