* Must be called after calling key_allocsp(). */
| 1180 | * Must be called after calling key_allocsp(). |
| 1181 | */ |
| 1182 | void |
| 1183 | key_freesp(struct secpolicy **spp) |
| 1184 | { |
| 1185 | struct secpolicy *sp = *spp; |
| 1186 | |
| 1187 | IPSEC_ASSERT(sp != NULL, ("null sp")); |
| 1188 | if (SP_DELREF(sp) == 0) |
| 1189 | return; |
| 1190 | |
| 1191 | KEYDBG(IPSEC_STAMP, |
| 1192 | printf("%s: last reference to SP(%p)\n", __func__, sp)); |
| 1193 | KEYDBG(IPSEC_DATA, kdebug_secpolicy(sp)); |
| 1194 | |
| 1195 | *spp = NULL; |
| 1196 | while (sp->tcount > 0) |
| 1197 | ipsec_delisr(sp->req[--sp->tcount]); |
| 1198 | free(sp, M_IPSEC_SP); |
| 1199 | } |
| 1200 | |
| 1201 | static void |
| 1202 | key_unlink(struct secpolicy *sp) |
no test coverage detected