Mark Johnston 173a7a4ee4 sctp: Fix iterator synchronization in sctp_sendall()
- The SCTP_PCB_FLAGS_SND_ITERATOR_UP check was racy, since two threads
  could observe that the flag is not set and then both set it.  I'm not
  sure if this is actually a problem in practice, i.e., maybe there's no
  problem having multiple sends for a single PCB in the iterator list?
- sctp_sendall() was modifying sctp_flags without the inp lock held.

The change simply acquires the PCB write lock before toggling the flag,
fixing both problems.

Reviewed by:	tuexen
MFC after:	1 week
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D31813
2021-09-07 11:19:29 -04:00
..
2021-06-11 15:40:34 +02:00
2021-08-08 10:16:06 +02:00
2020-11-29 13:41:49 +00:00
2021-07-07 07:22:35 -04:00
2020-11-22 20:21:10 +00:00
2021-02-25 10:13:52 +01:00
2021-07-28 09:35:09 -07:00
2021-08-13 11:06:17 +02:00
2021-05-31 05:48:15 +02:00
2021-08-09 12:01:46 +02:00
2020-09-24 12:26:06 +00:00
2020-09-24 12:26:06 +00:00
2021-01-24 00:07:41 +01:00
2021-07-08 08:16:45 -04:00
2021-07-07 07:22:35 -04:00
2021-02-18 22:36:01 -06:00