Fixed memory leak issue in CA common logic
authorhyuna0213.jo <hyuna0213.jo@samsung.com>
Wed, 24 Feb 2016 07:05:22 +0000 (16:05 +0900)
committerJon A. Cruz <jonc@osg.samsung.com>
Fri, 26 Feb 2016 05:32:04 +0000 (05:32 +0000)
These memory leaks are reported by Valgrind.
The CA common logic was not properly free the memory
that was allocated.

Change-Id: I63c46e7208378fd7430772dd91b4f67ef35f9684
Signed-off-by: hyuna0213.jo <hyuna0213.jo@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/5169
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Jaehong Jo <jaehong.jo@samsung.com>
Reviewed-by: Jon A. Cruz <jonc@osg.samsung.com>
resource/csdk/connectivity/src/cainterfacecontroller.c
resource/csdk/connectivity/src/camessagehandler.c

index 5e3e238..9b47eeb 100644 (file)
@@ -51,9 +51,9 @@
 
 
 
-static CAConnectivityHandler_t *g_adapterHandler;
+static CAConnectivityHandler_t *g_adapterHandler = NULL;
 
-static uint32_t g_numberOfAdapters;
+static uint32_t g_numberOfAdapters = 0;
 
 static CANetworkPacketReceivedCallback g_networkPacketReceivedCallback = NULL;
 
@@ -607,6 +607,9 @@ void CATerminateAdapters()
             g_adapterHandler[index].terminate();
         }
     }
+
+    OICFree(g_adapterHandler);
+    g_adapterHandler = NULL;
     g_numberOfAdapters = 0;
 }
 
index 76a9e28..8ed955a 100644 (file)
@@ -757,6 +757,7 @@ static void CAReceivedPacketCallback(const CASecureEndpoint_t *sep,
             CARetransmissionReceivedData(&g_retransmissionContext, cadata->remoteEndpoint, pdu->hdr,
                                          pdu->length, &retransmissionPdu);
 
+#ifndef WITH_BWT
             // get token from saved data in retransmission list
             if (retransmissionPdu && CA_EMPTY == code)
             {
@@ -773,6 +774,7 @@ static void CAReceivedPacketCallback(const CASecureEndpoint_t *sep,
                     }
                 }
             }
+#endif
             OICFree(retransmissionPdu);
         }
     }