diff --git a/sys/kern/uipc_usrreq.c b/sys/kern/uipc_usrreq.c --- a/sys/kern/uipc_usrreq.c +++ b/sys/kern/uipc_usrreq.c @@ -999,8 +999,10 @@ switch (so->so_type) { case SOCK_STREAM: if (control != NULL) { - sbappendcontrol_locked(&so2->so_rcv, m, - control, flags); + sbappendcontrol_locked(&so2->so_rcv, + m->m_len > 0 ? m : NULL, control, flags); + printf("appended %p nextpkt %p\n", control, + control->m_nextpkt); control = NULL; } else sbappend_locked(&so2->so_rcv, m, flags);