diff options
Diffstat (limited to 'net/sctp/socket.c')
-rw-r--r-- | net/sctp/socket.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/sctp/socket.c b/net/sctp/socket.c index 37eeab7899fc..1b5d669e3029 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c | |||
@@ -239,7 +239,7 @@ static struct sctp_transport *sctp_addr_id2transport(struct sock *sk, | |||
239 | union sctp_addr *laddr = (union sctp_addr *)addr; | 239 | union sctp_addr *laddr = (union sctp_addr *)addr; |
240 | struct sctp_transport *transport; | 240 | struct sctp_transport *transport; |
241 | 241 | ||
242 | if (sctp_verify_addr(sk, laddr, af->sockaddr_len)) | 242 | if (!af || sctp_verify_addr(sk, laddr, af->sockaddr_len)) |
243 | return NULL; | 243 | return NULL; |
244 | 244 | ||
245 | addr_asoc = sctp_endpoint_lookup_assoc(sctp_sk(sk)->ep, | 245 | addr_asoc = sctp_endpoint_lookup_assoc(sctp_sk(sk)->ep, |
@@ -7426,7 +7426,8 @@ static int sctp_wait_for_sndbuf(struct sctp_association *asoc, long *timeo_p, | |||
7426 | */ | 7426 | */ |
7427 | release_sock(sk); | 7427 | release_sock(sk); |
7428 | current_timeo = schedule_timeout(current_timeo); | 7428 | current_timeo = schedule_timeout(current_timeo); |
7429 | BUG_ON(sk != asoc->base.sk); | 7429 | if (sk != asoc->base.sk) |
7430 | goto do_error; | ||
7430 | lock_sock(sk); | 7431 | lock_sock(sk); |
7431 | 7432 | ||
7432 | *timeo_p = current_timeo; | 7433 | *timeo_p = current_timeo; |