]> git.baikalelectronics.ru Git - kernel.git/commit
[PPP] pppoe: Fix data clobbering in __pppoe_xmit and return value
authorHerbert Xu <herbert@gondor.apana.org.au>
Sun, 16 Sep 2007 23:19:50 +0000 (16:19 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 16 Sep 2007 23:19:50 +0000 (16:19 -0700)
commit86396fcc74484548102e1c2ab1ad5eec3c28cce3
tree85aa14dea255e209cd2f85180b47f4f092ec6921
parent0c7d5c6b11880b15d33cf01c1ac2758c43024e0e
[PPP] pppoe: Fix data clobbering in __pppoe_xmit and return value

The function __pppoe_xmit modifies the skb data and therefore it needs
to copy and skb data if it's cloned.

In fact, it currently allocates a new skb so that it can return 0 in
case of error without freeing the original skb.  This is totally wrong
because returning zero is meant to indicate congestion whereupon pppoe
is supposed to wake up the upper layer once the congestion subsides.

This makes sense for ppp_async and ppp_sync but is out-of-place for
pppoe.  This patch makes it always return 1 and free the skb.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/pppoe.c