aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFilip Tehlar <ftehlar@cisco.com>2020-10-30 05:00:18 +0000
committerAndrew Yourtchenko <ayourtch@gmail.com>2020-11-26 15:02:41 +0000
commitf7fd0e749b91aba981742ce704a993170ed1c34a (patch)
tree0278af90889d0734ababfb619a357b6b79e523f6 /src
parenta81bcf3945c9a0128de2e5d32a71813e32b05bc4 (diff)
ikev2: fix memory leak
Type: fix Change-Id: I33c38c791cc9a28898de402ae831c4862073eb2d Signed-off-by: Filip Tehlar <ftehlar@cisco.com> (cherry picked from commit b8bc2f1ef3332a795880f11f1c45a77b1b7851f6)
Diffstat (limited to 'src')
-rw-r--r--src/plugins/ikev2/ikev2.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/plugins/ikev2/ikev2.c b/src/plugins/ikev2/ikev2.c
index 025b34ca32d..2281c91d44f 100644
--- a/src/plugins/ikev2/ikev2.c
+++ b/src/plugins/ikev2/ikev2.c
@@ -1443,17 +1443,22 @@ ikev2_process_create_child_sa_req (vlib_main_t * vm,
rekey->tsi = tsi;
rekey->tsr = tsr;
/* update Ni */
- vec_free (sa->i_nonce);
+ vec_reset_length (sa->i_nonce);
vec_add (sa->i_nonce, nonce, IKEV2_NONCE_SIZE);
/* generate new Nr */
vec_validate (sa->r_nonce, IKEV2_NONCE_SIZE - 1);
RAND_bytes ((u8 *) sa->r_nonce, IKEV2_NONCE_SIZE);
- vec_free (n);
}
+ else
+ goto cleanup_and_exit;
+ vec_free (n);
return 1;
cleanup_and_exit:
vec_free (n);
+ vec_free (proposal);
+ vec_free (tsr);
+ vec_free (tsi);
return 0;
}