}
return error;
bad:
if (sav)
key_freesav(&sav);
if (m != NULL)
m_freem(m);
if (xd != NULL)
free(xd, M_XDATA);
crypto_freereq(crp);
key_freesp(&sp);
return (error);
if (sav != NULL)