eap-peap: Fix memory leaks when handling tunneled methods
authorTobias Brunner <tobias@strongswan.org>
Tue, 13 Sep 2016 12:27:54 +0000 (14:27 +0200)
committerTobias Brunner <tobias@strongswan.org>
Tue, 20 Sep 2016 13:36:15 +0000 (15:36 +0200)
src/libcharon/plugins/eap_peap/eap_peap_server.c

index 7f8348e..d51d0d0 100644 (file)
@@ -211,7 +211,7 @@ METHOD(tls_application_t, process, status_t,
        {
                DBG1(DBG_IKE, "received tunneled EAP-PEAP AVP [EAP/%N]",
                                                                eap_code_short_names, code);
-
+               in->destroy(in);
                /* if EAP_SUCCESS check if to continue phase2 with EAP-TNC */
                return (this->phase2_result == EAP_SUCCESS && code == EAP_SUCCESS) ?
                           start_phase2_tnc(this) : FAILED;
@@ -250,6 +250,7 @@ METHOD(tls_application_t, process, status_t,
                        {
                                DBG1(DBG_IKE, "%N method not available",
                                                           eap_type_names, EAP_IDENTITY);
+                               in->destroy(in);
                                return FAILED;
                        }
                }
@@ -258,6 +259,7 @@ METHOD(tls_application_t, process, status_t,
                {
 
                        DBG1(DBG_IKE, "%N method failed", eap_type_names, EAP_IDENTITY);
+                       in->destroy(in);
                        return FAILED;
                }