ipv6: lock socket in ip6_datagram_connect()
ip6_datagram_connect() is doing a lot of socket changes without socket being locked. This looks wrong, at least for udp_lib_rehash() which could corrupt lists because of concurrent udp_sk(sk)->udp_portaddr_hash accesses. Signed-off-by: Eric Dumazet <edumazet@google.com> Acked-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
14e4cec80c
commit
03645a11a5
@@ -161,6 +161,7 @@ static inline __u8 get_rtconn_flags(struct ipcm_cookie* ipc, struct sock* sk)
|
||||
}
|
||||
|
||||
/* datagram.c */
|
||||
int __ip4_datagram_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len);
|
||||
int ip4_datagram_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len);
|
||||
|
||||
void ip4_datagram_release_cb(struct sock *sk);
|
||||
|
Reference in New Issue
Block a user