Memory Leak of capi context resolved
authorManoj Gupta <manoj.g2@samsung.com>
Tue, 8 Mar 2016 14:47:10 +0000 (20:17 +0530)
committerJon A. Cruz <jon@joncruz.org>
Wed, 16 Mar 2016 07:50:15 +0000 (07:50 +0000)
Change-Id: I60857c492efdbf5890ad500cbeeb7b9138bfa73f
Signed-off-by: Manoj Gupta <manoj.g2@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/5557
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Jon A. Cruz <jon@joncruz.org>
resource/csdk/connectivity/lib/libcoap-4.1.1/net.c

index d3ea2ec..580729b 100644 (file)
@@ -324,20 +324,23 @@ coap_new_context(const coap_address_t *listen_addr)
 #if defined(WITH_POSIX)
     coap_context_t *c = coap_malloc( sizeof( coap_context_t ) );
     int reuse = 1;
-#endif /* WITH_POSIX */
-#ifdef WITH_LWIP
-    coap_context_t *c = memp_malloc(MEMP_COAP_CONTEXT);
-#endif /* WITH_LWIP */
-#ifdef WITH_CONTIKI
-    coap_context_t *c;
-
+#elif WITH_CONTIKI
+    coap_context_t *c =NULL;
     if (initialized)
-    return NULL;
-#endif /* WITH_CONTIKI */
-
+    {
+        return NULL;
+    }
+#elif WITH_LWIP
+    coap_context_t *c = memp_malloc(MEMP_COAP_CONTEXT);
+#endif /* WITH_POSIX */
     if (!listen_addr)
     {
         coap_log(LOG_EMERG, "no listen address specified\n");
+#if defined(WITH_POSIX)
+        coap_free_context(c);
+#elif WITH_LWIP
+        memp_free(c);
+#endif
         return NULL;
     }