Thread (5 messages) flat view 5 messages, 4 authors, 2012-12-10

Re: [PATCH] ipv4: ip_check_defrag must not modify skb before unsharing

From: David Miller <davem@davemloft.net>
Date: 2012-12-10 18:41:49
Also in: linux-wireless

Possibly related (same subject, not in this thread)

From: Johannes Berg <johannes@sipsolutions.net>
Date: Mon, 10 Dec 2012 10:41:06 +0100
From: Johannes Berg <redacted>

ip_check_defrag() might be called from af_packet within the
RX path where shared SKBs are used, so it must not modify
the input SKB before it has unshared it for defragmentation.
Use skb_copy_bits() to get the IP header and only pull in
everything later.

The same is true for the other caller in macvlan as it is
called from dev->rx_handler which can also get a shared SKB.

Reported-by: Eric Leblond <redacted>
Cc: stable@vger.kernel.org
Signed-off-by: Johannes Berg <redacted>
---
For some versions of the kernel, this code goes into af_packet.c
So the bug is that ip_check_defrag() has a precondition which is met
properly by all callers except AF_PACKET.

If this is the case, remind me why are we changing ip_check_defrag()
rather than the violator of the precondition?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help