diff --git a/sys/netinet/sctp_pcb.c b/sys/netinet/sctp_pcb.c index c681440d929..92a84d6a299 100644 --- a/sys/netinet/sctp_pcb.c +++ b/sys/netinet/sctp_pcb.c @@ -3640,11 +3640,13 @@ sctp_inpcb_free(struct sctp_inpcb *inp, int immediate, int from) * macro here since le_next will get freed as part of the * sctp_free_assoc() call. */ + if (so) { #ifdef IPSEC - if (ip_pcb->inp_sp != NULL) { ipsec_delete_pcbpolicy(ip_pcb); +#endif /* IPSEC */ + + /* Unlocks not needed since the socket is gone now */ } -#endif if (ip_pcb->inp_options) { (void)sctp_m_free(ip_pcb->inp_options); ip_pcb->inp_options = 0;