• Herbert Xu's avatar
    [PPP] pppoe: Fix data clobbering in __pppoe_xmit and return value · db7bf6d9
    Herbert Xu authored
    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: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    db7bf6d9
pppoe.c 25.3 KB