|
@@ -380,6 +380,8 @@ static int sctp_assocs_seq_show(struct seq_file *seq, void *v)
|
|
|
}
|
|
|
|
|
|
transport = (struct sctp_transport *)v;
|
|
|
+ if (!sctp_transport_hold(transport))
|
|
|
+ return 0;
|
|
|
assoc = transport->asoc;
|
|
|
epb = &assoc->base;
|
|
|
sk = epb->sk;
|
|
@@ -412,6 +414,8 @@ static int sctp_assocs_seq_show(struct seq_file *seq, void *v)
|
|
|
sk->sk_rcvbuf);
|
|
|
seq_printf(seq, "\n");
|
|
|
|
|
|
+ sctp_transport_put(transport);
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -489,6 +493,8 @@ static int sctp_remaddr_seq_show(struct seq_file *seq, void *v)
|
|
|
}
|
|
|
|
|
|
tsp = (struct sctp_transport *)v;
|
|
|
+ if (!sctp_transport_hold(tsp))
|
|
|
+ return 0;
|
|
|
assoc = tsp->asoc;
|
|
|
|
|
|
list_for_each_entry_rcu(tsp, &assoc->peer.transport_addr_list,
|
|
@@ -544,6 +550,8 @@ static int sctp_remaddr_seq_show(struct seq_file *seq, void *v)
|
|
|
seq_printf(seq, "\n");
|
|
|
}
|
|
|
|
|
|
+ sctp_transport_put(tsp);
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|