blob: e2d5c1eaf3ae643db200ca7a504b8fa84b740dbf [file] [log] [blame]
From stable-bounces@linux.kernel.org Mon Dec 4 20:02:22 2006
Date: Mon, 04 Dec 2006 19:57:11 -0800 (PST)
Message-Id: <20061204.195711.45741021.davem@davemloft.net>
To: stable@kernel.org
From: David Miller <davem@davemloft.net>
Subject: TOKENRING: Remote memory corruptor in ibmtr.c
ip_summed changes last summer had missed that one. As the result,
we have ip_summed interpreted as CHECKSUM_PARTIAL now. IOW,
->csum is interpreted as offset of checksum in the packet. net/core/*
will both read and modify the value as that offset, with obvious
reasons. At the very least it's a remote memory corruptor.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
---
commit b1875feda8c1735915e12d953acba85d96129f6a
Author: Al Viro <viro@zeniv.linux.org.uk>
Date: Mon Dec 4 19:37:42 2006 -0800
drivers/net/tokenring/ibmtr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- linux-2.6.19.orig/drivers/net/tokenring/ibmtr.c
+++ linux-2.6.19/drivers/net/tokenring/ibmtr.c
@@ -1826,7 +1826,7 @@ static void tr_rx(struct net_device *dev
skb->protocol = tr_type_trans(skb, dev);
if (IPv4_p) {
skb->csum = chksum;
- skb->ip_summed = 1;
+ skb->ip_summed = CHECKSUM_COMPLETE;
}
netif_rx(skb);
dev->last_rx = jiffies;