Commit 2a27a03d authored by Andrej Ota's avatar Andrej Ota Committed by David S. Miller

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 55c95e73.
Reported-by: default avatarGorik Van Steenberge <gvs@zemos.net>
Reported-by: default avatarDaniel Kenzelmann <kernel.bugzilla@kenzelmann.dyndns.info>
Reported-by: default avatarDenys Fedoryshchenko <nuclearcat@nuclearcat.com>
Reported-by: default avatarPawel Staszewski <pstaszewski@artcom.pl>
Diagnosed-by: default avatarAndrej Ota <andrej@ota.si>
Diagnosed-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
Tested-by: default avatarDenys Fedoryshchenko <nuclearcat@nuclearcat.com>
Tested-by: default avatarPawel Staszewski <pstaszewski@artcom.pl>
Signed-off-by: default avatarJarek Poplawski <jarkao2@gmail.com>
Signed-off-by: default avatarAndrej Ota <andrej@ota.si>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent eaff9453
......@@ -948,7 +948,7 @@ static int __pppoe_xmit(struct sock *sk, struct sk_buff *skb)
abort:
kfree_skb(skb);
return 0;
return 1;
}
/************************************************************************
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment