X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fipsec%2Fipsec_sa.c;h=8e8546985ecca7c70f7444fbb8a201c70507ca9d;hb=e6be702362299566990678f505512b1b74b49112;hp=4248c2e0e8e0fe1f852f37e40a427c5a48d60c73;hpb=4b58a86da48a5bb861e0e329a60c3876a990f63e;p=vpp.git diff --git a/src/vnet/ipsec/ipsec_sa.c b/src/vnet/ipsec/ipsec_sa.c index 4248c2e0e8e..8e8546985ec 100644 --- a/src/vnet/ipsec/ipsec_sa.c +++ b/src/vnet/ipsec/ipsec_sa.c @@ -171,13 +171,19 @@ ipsec_sa_add (u32 id, im->crypto_algs[crypto_alg].alg, (u8 *) ck->data, ck->len); if (~0 == sa->crypto_key_index) - return VNET_API_ERROR_INVALID_VALUE; + { + pool_put (im->sad, sa); + return VNET_API_ERROR_KEY_LENGTH; + } sa->integ_key_index = vnet_crypto_key_add (vm, im->integ_algs[integ_alg].alg, (u8 *) ik->data, ik->len); if (~0 == sa->integ_key_index) - return VNET_API_ERROR_INVALID_VALUE; + { + pool_put (im->sad, sa); + return VNET_API_ERROR_KEY_LENGTH; + } err = ipsec_check_support_cb (im, sa); if (err)