diff --git a/sys/netinet/sctp_output.c b/sys/netinet/sctp_output.c index 77beb1f87cf..ac2da30f111 100644 --- a/sys/netinet/sctp_output.c +++ b/sys/netinet/sctp_output.c @@ -10436,9 +10436,10 @@ sctp_copy_resume(struct sctp_stream_queue_pending *sp, (M_PKTHDR | (user_marks_eor ? M_EOR : 0))); if (m == NULL) *error = ENOMEM; - else + else { *sndout = m_length(m, NULL); - *new_tail = m_last(m); + *new_tail = m_last(m); + } return (m); } diff --git a/sys/netinet/sctp_timer.c b/sys/netinet/sctp_timer.c index 9e17dd0eb36..380c357bad7 100644 --- a/sys/netinet/sctp_timer.c +++ b/sys/netinet/sctp_timer.c @@ -1706,7 +1706,8 @@ select_a_new_ep: if (iteration_count > SCTP_ITERATOR_MAX_AT_ONCE) { start_timer_return: /* set a timer to continue this later */ - SCTP_TCB_UNLOCK(it->stcb); + if (it->stcb) + SCTP_TCB_UNLOCK(it->stcb); sctp_timer_start(SCTP_TIMER_TYPE_ITERATOR, (struct sctp_inpcb *)it, NULL, NULL); SCTP_ITERATOR_UNLOCK();