Commit eae64c4a authored by Ulrich Sibiller's avatar Ulrich Sibiller

ChannelEndPoint.cpp: fix another memleak

==7689== 50 bytes in 5 blocks are definitely lost in loss record 1 of 2 ==7689== at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==7689== by 0x54074D9: strndup (strndup.c:43) ==7689== by 0x4E7D803: ChannelEndPoint::getTCPHostAndPort(char**, long*) const (ChannelEndPoint.cpp:309) ==7689== by 0x4EC9D93: ConnectToRemote(ChannelEndPoint&) [clone .constprop.144] (Loop.cpp:6660) ==7689== by 0x4ECB94E: SetupProxyConnection() (Loop.cpp:3204) ==7689== by 0x4ECE824: handleNegotiationInLoop(int&, fd_set&, fd_set&, timeval&) [clone .isra.129] (Loop.cpp:14312) ==7689== by 0x4ED0F8A: NXTransPrepare (Loop.cpp:2575) ==7689== by 0x4ED1C35: NXTransContinue (Loop.cpp:1609) ==7689== by 0x4ED1D7B: WaitCleanup() (Loop.cpp:4440) ==7689== by 0x4ED2343: NXTransProxy (Loop.cpp:1234) ==7689== by 0x400B2A: main (Main.c:111)
parent 96879dc6
...@@ -273,8 +273,10 @@ ChannelEndPoint::getTCPHostAndPort(char **host, long *port) const { ...@@ -273,8 +273,10 @@ ChannelEndPoint::getTCPHostAndPort(char **host, long *port) const {
char *h = NULL; char *h = NULL;
ssize_t h_len; ssize_t h_len;
if (host) *host = NULL; if (host)
if (port) *port = 0; *host = NULL;
if (port)
*port = 0;
if (getPort(&p)) { if (getPort(&p)) {
h_len = 0; h_len = 0;
......
...@@ -6660,6 +6660,8 @@ int ConnectToRemote(ChannelEndPoint &socketAddress) ...@@ -6660,6 +6660,8 @@ int ConnectToRemote(ChannelEndPoint &socketAddress)
<< " in process with pid '" << getpid() << " in process with pid '" << getpid()
<< "'.\n" << std::flush; << "'.\n" << std::flush;
SAFE_FREE(hostName);
if (socketAddress.getUnixPath(&unixPath)) if (socketAddress.getUnixPath(&unixPath))
result = PrepareProxyConnectionUnix(&unixPath, &connectTimeout, &pFD, &reason); result = PrepareProxyConnectionUnix(&unixPath, &connectTimeout, &pFD, &reason);
else if (socketAddress.getTCPHostAndPort(&hostName, &portNum)) else if (socketAddress.getTCPHostAndPort(&hostName, &portNum))
......
...@@ -6123,7 +6123,7 @@ int Proxy::handleNewSlaveConnection(int clientFd) ...@@ -6123,7 +6123,7 @@ int Proxy::handleNewSlaveConnection(int clientFd)
int Proxy::handleNewGenericConnectionFromProxy(int channelId, T_channel_type type, int Proxy::handleNewGenericConnectionFromProxy(int channelId, T_channel_type type,
ChannelEndPoint &endPoint, const char *label) ChannelEndPoint &endPoint, const char *label)
{ {
char *unixPath, *host; char *unixPath, *host = NULL;
long port; long port;
if (endPoint.getUnixPath(&unixPath)) { if (endPoint.getUnixPath(&unixPath)) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment