mirror of
https://github.com/torvalds/linux.git
synced 2026-10-07 05:31:08 -04:00
packet: bail out of packet_snd() if L2 header creation fails
Due to a misplaced parenthesis, the expression
(unlikely(offset) < 0),
which expands to
(__builtin_expect(!!(offset), 0) < 0),
never evaluates to true. Therefore, when sending packets with
PF_PACKET/SOCK_DGRAM, packet_snd() does not abort as intended
if the creation of the layer 2 header fails.
Spotted by Coverity - CID 1259975 ("Operands don't affect result").
Fixes: 9c7077622d ("packet: make packet_snd fail on len smaller than l2 header")
Signed-off-by: Christoph Jaeger <[email protected]>
Acked-by: Eric Dumazet <[email protected]>
Acked-by: Willem de Bruijn <[email protected]>
Acked-by: Daniel Borkmann <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
1 parent
7a05dc64e2
commit
46d2cfb192
1 file changed
+1
-1
@@ -2517,7 +2517,7 @@ static int packet_snd(struct socket *sock, struct msghdr *msg, size_t len)
|
||||
err = -EINVAL;
|
||||
if (sock->type == SOCK_DGRAM) {
|
||||
offset = dev_hard_header(skb, dev, ntohs(proto), addr, NULL, len);
|
||||
if (unlikely(offset) < 0)
|
||||
if (unlikely(offset < 0))
|
||||
goto out_free;
|
||||
} else {
|
||||
if (ll_header_truncated(dev, len))
|
||||
|
||||
Reference in new issue
Block a user