* Must be called after calling key_allocsa(). * This function is called by key_freesp() to free some SA allocated * for a policy. */
| 1341 | * for a policy. |
| 1342 | */ |
| 1343 | void |
| 1344 | key_freesav(struct secasvar **psav) |
| 1345 | { |
| 1346 | struct secasvar *sav = *psav; |
| 1347 | |
| 1348 | IPSEC_ASSERT(sav != NULL, ("null sav")); |
| 1349 | if (SAV_DELREF(sav) == 0) |
| 1350 | return; |
| 1351 | |
| 1352 | KEYDBG(IPSEC_STAMP, |
| 1353 | printf("%s: last reference to SA(%p)\n", __func__, sav)); |
| 1354 | |
| 1355 | *psav = NULL; |
| 1356 | key_delsav(sav); |
| 1357 | } |
| 1358 | |
| 1359 | /* |
| 1360 | * Unlink SA from SAH and SPI hash under SAHTREE_WLOCK. |
no test coverage detected