diff options
author | Filip Tehlar <ftehlar@cisco.com> | 2020-10-30 05:00:18 +0000 |
---|---|---|
committer | Filip Tehlar <ftehlar@cisco.com> | 2020-10-30 05:36:03 +0000 |
commit | b8bc2f1ef3332a795880f11f1c45a77b1b7851f6 (patch) | |
tree | ccd82614c855978ed2d4144f9e4eec93125cd5a0 /src/plugins/ikev2/ikev2.c | |
parent | 041add7d12217494934b651e4e38b5eab5216ddc (diff) |
ikev2: fix memory leak
Type: fix
Change-Id: I33c38c791cc9a28898de402ae831c4862073eb2d
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Diffstat (limited to 'src/plugins/ikev2/ikev2.c')
-rw-r--r-- | src/plugins/ikev2/ikev2.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/plugins/ikev2/ikev2.c b/src/plugins/ikev2/ikev2.c index f3ac6f69318..52536d7b709 100644 --- a/src/plugins/ikev2/ikev2.c +++ b/src/plugins/ikev2/ikev2.c @@ -1442,17 +1442,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; } |