Fixing memory leak on getRemoteAddress calls
GetRemoteAddress returns a char array which needs to be deleted by
the caller.
Change-Id: I379b3efca6620e8f8f2f63a8218cc83765020ac7
git-svn-id: https://svn.apache.org/repos/asf/etch/trunk@1578894 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/binding-cpp/runtime/src/main/transport/EtchTcpConnection.cpp b/binding-cpp/runtime/src/main/transport/EtchTcpConnection.cpp
index 3222b91..6c073ca 100644
--- a/binding-cpp/runtime/src/main/transport/EtchTcpConnection.cpp
+++ b/binding-cpp/runtime/src/main/transport/EtchTcpConnection.cpp
@@ -138,6 +138,8 @@
status_t result = mSocket->getRemoteAddress(&remoteAddress);
ETCH_LOG_DEBUG(mRuntime->getLogger(), mRuntime->getLogger().getTransportContext(), mHost.c_str() << ":" << mPort << " => Connection established to remote " << remoteAddress);
+ delete[] remoteAddress;
+
return ETCH_OK;
} else {
mSocket->close();
diff --git a/binding-cpp/runtime/src/main/transport/EtchTcpListener.cpp b/binding-cpp/runtime/src/main/transport/EtchTcpListener.cpp
index fe48cba..eca2f34 100644
--- a/binding-cpp/runtime/src/main/transport/EtchTcpListener.cpp
+++ b/binding-cpp/runtime/src/main/transport/EtchTcpListener.cpp
@@ -152,6 +152,7 @@
capu::char_t* remoteAddress = NULL;
status_t result = s->getRemoteAddress(&remoteAddress);
ETCH_LOG_DEBUG(mRuntime->getLogger(), mRuntime->getLogger().getTransportContext(), "A new connection from " << remoteAddress << " has been accepted");
+ delete[] remoteAddress;
mSession->sessionAccepted(s);
} else {
delete s;