aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/ikev2/ikev2.c
diff options
context:
space:
mode:
authorFilip Tehlar <ftehlar@cisco.com>2020-10-05 12:30:44 +0000
committerAndrew Yourtchenko <ayourtch@gmail.com>2020-11-26 15:02:41 +0000
commitae0d24f1be7fab03c5697996cb7da0fc6dd0bd12 (patch)
tree4f0888ce258066c0c4f2354302c577db0309c6f3 /src/plugins/ikev2/ikev2.c
parent469181845b735f01f94e2c25e1868570bcd55f0c (diff)
ikev2: fix memory leak in auth routine
Type: fix Change-Id: I93529b069925fcef32cdb22e27975b802b4c3b97 Signed-off-by: Filip Tehlar <ftehlar@cisco.com> (cherry picked from commit 623d87fd39c53e2f4d8718014e76836fe07c4245)
Diffstat (limited to 'src/plugins/ikev2/ikev2.c')
-rw-r--r--src/plugins/ikev2/ikev2.c4
1 files changed, 4 insertions, 0 deletions
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;
}