From: Filip Tehlar Date: Mon, 5 Oct 2020 12:30:44 +0000 (+0000) Subject: ikev2: fix memory leak in auth routine X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F12%2F30012%2F2;p=vpp.git ikev2: fix memory leak in auth routine Type: fix Change-Id: I93529b069925fcef32cdb22e27975b802b4c3b97 Signed-off-by: Filip Tehlar (cherry picked from commit 623d87fd39c53e2f4d8718014e76836fe07c4245) --- diff --git a/src/plugins/ikev2/ikev2.c b/src/plugins/ikev2/ikev2.c index a266853760f..cbffcba76ac 100644 --- a/src/plugins/ikev2/ikev2.c +++ b/src/plugins/ikev2/ikev2.c @@ -1672,11 +1672,13 @@ ikev2_sa_auth (ikev2_sa_t * sa) authmsg = ikev2_sa_generate_authmsg (sa, 1); if (sel_p->auth.method == IKEV2_AUTH_METHOD_SHARED_KEY_MIC) { + vec_free (sa->r_auth.data); sa->r_auth.data = ikev2_calc_prf (tr_prf, psk, authmsg); sa->r_auth.method = IKEV2_AUTH_METHOD_SHARED_KEY_MIC; } else if (sel_p->auth.method == IKEV2_AUTH_METHOD_RSA_SIG) { + vec_free (sa->r_auth.data); sa->r_auth.data = ikev2_calc_sign (km->pkey, authmsg); sa->r_auth.method = IKEV2_AUTH_METHOD_RSA_SIG; } @@ -1733,11 +1735,13 @@ ikev2_sa_auth_init (ikev2_sa_t * sa) if (sa->i_auth.method == IKEV2_AUTH_METHOD_SHARED_KEY_MIC) { + vec_free (sa->i_auth.data); sa->i_auth.data = ikev2_calc_prf (tr_prf, psk, authmsg); sa->i_auth.method = IKEV2_AUTH_METHOD_SHARED_KEY_MIC; } else if (sa->i_auth.method == IKEV2_AUTH_METHOD_RSA_SIG) { + vec_free (sa->i_auth.data); sa->i_auth.data = ikev2_calc_sign (km->pkey, authmsg); sa->i_auth.method = IKEV2_AUTH_METHOD_RSA_SIG; }