diff options
author | 2019-09-05 11:40:54 +0200 | |
---|---|---|
committer | 2019-09-05 11:40:54 +0200 | |
commit | 151a41014bff92f353263cadc051435dc9c3258e (patch) | |
tree | aa082a0745edd5b7051668f455dfc0ee1e4a9de0 /net/packet/af_packet.c | |
parent | gpio: Fix up merge collision in include file (diff) | |
parent | Linux 5.3-rc7 (diff) | |
download | wireguard-linux-151a41014bff92f353263cadc051435dc9c3258e.tar.xz wireguard-linux-151a41014bff92f353263cadc051435dc9c3258e.zip |
Merge tag 'v5.3-rc7' into devel
Linux 5.3-rc7
Diffstat (limited to '')
-rw-r--r-- | net/packet/af_packet.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index 8d54f3047768..e2742b006d25 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -2618,6 +2618,13 @@ static int tpacket_snd(struct packet_sock *po, struct msghdr *msg) mutex_lock(&po->pg_vec_lock); + /* packet_sendmsg() check on tx_ring.pg_vec was lockless, + * we need to confirm it under protection of pg_vec_lock. + */ + if (unlikely(!po->tx_ring.pg_vec)) { + err = -EBUSY; + goto out; + } if (likely(saddr == NULL)) { dev = packet_cached_dev_get(po); proto = po->num; |