|
|
@@ -2045,7 +2045,7 @@ static int sctp_sendmsg(struct sock *sk, struct msghdr *msg, size_t msg_len)
|
|
|
struct sctp_endpoint *ep = sctp_sk(sk)->ep;
|
|
|
struct sctp_transport *transport = NULL;
|
|
|
struct sctp_sndrcvinfo _sinfo, *sinfo;
|
|
|
- struct sctp_association *asoc;
|
|
|
+ struct sctp_association *asoc, *tmp;
|
|
|
struct sctp_cmsgs cmsgs;
|
|
|
union sctp_addr *daddr;
|
|
|
bool new = false;
|
|
|
@@ -2071,7 +2071,7 @@ static int sctp_sendmsg(struct sock *sk, struct msghdr *msg, size_t msg_len)
|
|
|
|
|
|
/* SCTP_SENDALL process */
|
|
|
if ((sflags & SCTP_SENDALL) && sctp_style(sk, UDP)) {
|
|
|
- list_for_each_entry(asoc, &ep->asocs, asocs) {
|
|
|
+ list_for_each_entry_safe(asoc, tmp, &ep->asocs, asocs) {
|
|
|
err = sctp_sendmsg_check_sflags(asoc, sflags, msg,
|
|
|
msg_len);
|
|
|
if (err == 0)
|