charon-tkm: Check for error when acquiring ESA ID
This commit is contained in:
committed by
Tobias Brunner
parent
8e823bb8b1
commit
59e7298ff9
@@ -134,6 +134,12 @@ METHOD(kernel_ipsec_t, add_sa, status_t,
|
|||||||
}
|
}
|
||||||
|
|
||||||
esa_id = tkm->idmgr->acquire_id(tkm->idmgr, TKM_CTX_ESA);
|
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,
|
if (!tkm->sad->insert(tkm->sad, esa_id, data->reqid, local, peer,
|
||||||
spi_loc, spi_rem, id->proto))
|
spi_loc, spi_rem, id->proto))
|
||||||
{
|
{
|
||||||
@@ -196,6 +202,7 @@ failure:
|
|||||||
tkm->sad->remove(tkm->sad, esa_id);
|
tkm->sad->remove(tkm->sad, esa_id);
|
||||||
sad_failure:
|
sad_failure:
|
||||||
tkm->idmgr->release_id(tkm->idmgr, TKM_CTX_ESA, esa_id);
|
tkm->idmgr->release_id(tkm->idmgr, TKM_CTX_ESA, esa_id);
|
||||||
|
esa_id_failure:
|
||||||
chunk_free(&esa.nonce_i);
|
chunk_free(&esa.nonce_i);
|
||||||
chunk_free(&esa.nonce_r);
|
chunk_free(&esa.nonce_r);
|
||||||
return FAILED;
|
return FAILED;
|
||||||
|
|||||||
Reference in New Issue
Block a user