aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrian-Ken Rueegsegger <ken@codelabs.ch>2017-09-04 15:00:42 +0200
committerTobias Brunner <tobias@strongswan.org>2017-09-15 12:16:57 +0200
commit59e7298ff9d879493391f06b95189c23dedb7740 (patch)
tree772bb283b9d30032617d0a13f3dfb58ef7beece8
parent8e823bb8b1ae4b1efcb81bc2cf07717333309120 (diff)
downloadstrongswan-59e7298ff9d879493391f06b95189c23dedb7740.tar.bz2
strongswan-59e7298ff9d879493391f06b95189c23dedb7740.tar.xz
charon-tkm: Check for error when acquiring ESA ID
-rw-r--r--src/charon-tkm/src/tkm/tkm_kernel_ipsec.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/charon-tkm/src/tkm/tkm_kernel_ipsec.c b/src/charon-tkm/src/tkm/tkm_kernel_ipsec.c
index 5decde92b..87b516d43 100644
--- a/src/charon-tkm/src/tkm/tkm_kernel_ipsec.c
+++ b/src/charon-tkm/src/tkm/tkm_kernel_ipsec.c
@@ -134,6 +134,12 @@ METHOD(kernel_ipsec_t, add_sa, status_t,
}
esa_id = tkm->idmgr->acquire_id(tkm->idmgr, TKM_CTX_ESA);
+ if (esa_id == 0)
+ {
+ DBG1(DBG_KNL, "unable to acquire esa context id");
+ goto esa_id_failure;
+ }
+
if (!tkm->sad->insert(tkm->sad, esa_id, data->reqid, local, peer,
spi_loc, spi_rem, id->proto))
{
@@ -196,6 +202,7 @@ failure:
tkm->sad->remove(tkm->sad, esa_id);
sad_failure:
tkm->idmgr->release_id(tkm->idmgr, TKM_CTX_ESA, esa_id);
+esa_id_failure:
chunk_free(&esa.nonce_i);
chunk_free(&esa.nonce_r);
return FAILED;