diff options
author | Andrej Ota <[email protected]> | 2010-12-12 15:06:16 -0800 |
---|---|---|
committer | David S. Miller <[email protected]> | 2010-12-12 15:06:16 -0800 |
commit | 2a27a03d3a891e87ca33d27a858b4db734a4cbab (patch) | |
tree | 6c5be5e7a4d4302dd993c6a35343fe4ea4e4efe8 | |
parent | eaff9453d3e2b63969af93e9d42a85e803060121 (diff) |
pppoe.c: Fix kernel panic caused by __pppoe_xmit
__pppoe_xmit function return value was invalid resulting in
additional call to kfree_skb on already freed skb. This resulted in
memory corruption and consequent kernel panic after PPPoE peer
terminated the link.
This fixes commit 55c95e738da85373965cb03b4f975d0fd559865b.
Reported-by: Gorik Van Steenberge <[email protected]>
Reported-by: Daniel Kenzelmann <[email protected]>
Reported-by: Denys Fedoryshchenko <[email protected]>
Reported-by: Pawel Staszewski <[email protected]>
Diagnosed-by: Andrej Ota <[email protected]>
Diagnosed-by: Eric Dumazet <[email protected]>
Tested-by: Denys Fedoryshchenko <[email protected]>
Tested-by: Pawel Staszewski <[email protected]>
Signed-off-by: Jarek Poplawski <[email protected]>
Signed-off-by: Andrej Ota <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
-rw-r--r-- | drivers/net/pppoe.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/pppoe.c b/drivers/net/pppoe.c index d72fb0519a2a..78c0e3c9b2b5 100644 --- a/drivers/net/pppoe.c +++ b/drivers/net/pppoe.c @@ -948,7 +948,7 @@ static int __pppoe_xmit(struct sock *sk, struct sk_buff *skb) abort: kfree_skb(skb); - return 0; + return 1; } /************************************************************************ |