summaryrefslogtreecommitdiffstats
path: root/drivers/net/spider_net.c
diff options
context:
space:
mode:
authorLinas Vepstas <linas@austin.ibm.com>2007-06-11 13:17:02 -0500
committerJeff Garzik <jeff@garzik.org>2007-06-20 19:09:32 -0400
commit83d35145c443d8394aaf1743301e79fa0a8054d7 (patch)
tree4a4fe97485e1690eb43212cb3afda93acc5edc62 /drivers/net/spider_net.c
parentd025d7858f7415f558e89d870ad1a205954b64cd (diff)
downloadlinux-83d35145c443d8394aaf1743301e79fa0a8054d7.tar.bz2
spidernet: null out skb pointer after its been used.
Avoid kernel crash in mm/slab.c due to double-free of pointer. If the ethernet interface is brought down while there is still RX traffic in flight, the device shutdown routine can end up trying to double-free an skb, leading to a crash in mm/slab.c Avoid the double-free by nulling out the skb pointer. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/spider_net.c')
-rw-r--r--drivers/net/spider_net.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/spider_net.c b/drivers/net/spider_net.c
index b47ad1df2e0c..69005d113d4d 100644
--- a/drivers/net/spider_net.c
+++ b/drivers/net/spider_net.c
@@ -1131,6 +1131,7 @@ spider_net_decode_one_descr(struct spider_net_card *card)
/* Ok, we've got a packet in descr */
spider_net_pass_skb_up(descr, card);
+ descr->skb = NULL;
hwdescr->dmac_cmd_status = SPIDER_NET_DESCR_NOT_IN_USE;
return 1;