|
@@ -235,8 +235,12 @@ static struct sctp_transport *sctp_addr_id2transport(struct sock *sk,
|
|
sctp_assoc_t id)
|
|
sctp_assoc_t id)
|
|
{
|
|
{
|
|
struct sctp_association *addr_asoc = NULL, *id_asoc = NULL;
|
|
struct sctp_association *addr_asoc = NULL, *id_asoc = NULL;
|
|
- struct sctp_transport *transport;
|
|
|
|
|
|
+ struct sctp_af *af = sctp_get_af_specific(addr->ss_family);
|
|
union sctp_addr *laddr = (union sctp_addr *)addr;
|
|
union sctp_addr *laddr = (union sctp_addr *)addr;
|
|
|
|
+ struct sctp_transport *transport;
|
|
|
|
+
|
|
|
|
+ if (sctp_verify_addr(sk, laddr, af->sockaddr_len))
|
|
|
|
+ return NULL;
|
|
|
|
|
|
addr_asoc = sctp_endpoint_lookup_assoc(sctp_sk(sk)->ep,
|
|
addr_asoc = sctp_endpoint_lookup_assoc(sctp_sk(sk)->ep,
|
|
laddr,
|
|
laddr,
|