diff options
author | tuexen <tuexen@FreeBSD.org> | 2015-12-25 18:11:40 +0000 |
---|---|---|
committer | tuexen <tuexen@FreeBSD.org> | 2015-12-25 18:11:40 +0000 |
commit | 0efa1469be94566c09b9f4ce538c28e92d26026c (patch) | |
tree | a4f7b374845552c29163b4c2670c53ee7609000b /sys/netinet/sctp_output.c | |
parent | 1d2026b19b295705240a2a740a18e29576e0819e (diff) | |
download | FreeBSD-src-0efa1469be94566c09b9f4ce538c28e92d26026c.zip FreeBSD-src-0efa1469be94566c09b9f4ce538c28e92d26026c.tar.gz |
Don't implicitly terminate a user message when moving it to the
send_queue and the socket is closed. This results in strange
race conditions for the application.
While there, remove a stray character.
MFC after: 3 days
Diffstat (limited to 'sys/netinet/sctp_output.c')
-rw-r--r-- | sys/netinet/sctp_output.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/sys/netinet/sctp_output.c b/sys/netinet/sctp_output.c index c131edf..95ac97c 100644 --- a/sys/netinet/sctp_output.c +++ b/sys/netinet/sctp_output.c @@ -7219,7 +7219,7 @@ one_more_time: } /* Whack down the size */ atomic_subtract_int(&stcb->asoc.total_output_queue_size, sp->length); - if ((stcb->sctp_socket != NULL) && \ + if ((stcb->sctp_socket != NULL) && ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) || (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL))) { atomic_subtract_int(&stcb->sctp_socket->so_snd.sb_cc, sp->length); @@ -7238,9 +7238,6 @@ one_more_time: } } some_taken = sp->some_taken; - if (stcb->asoc.state & SCTP_STATE_CLOSED_SOCKET) { - sp->msg_is_complete = 1; - } re_look: length = sp->length; if (sp->msg_is_complete) { |