[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20100502.232711.256856995.davem@davemloft.net>
Date: Sun, 02 May 2010 23:27:11 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: simon@...e.lp0.eu
Cc: netdev@...r.kernel.org, paulus@...ba.org, linux-ppp@...r.kernel.org
Subject: Re: [PATCH 2/2] ppp_generic: linearise skbs before passing them to
pppd
From: Simon Arlott <simon@...e.lp0.eu>
Date: Fri, 30 Apr 2010 19:41:45 +0100
> Frequently when using PPPoE with an interface MTU greater than 1500,
> the skb is likely to be non-linear. If the skb needs to be passed to
> pppd then the skb must be linearised first.
>
> The previous commit fixes an issue with accidentally sending skbs
> to pppd based on an invalid read of the protocol type. When that
> error occurred pppd was reading invalid skb data too.
>
> Signed-off-by: Simon Arlott <simon@...e.lp0.eu>
Don't propagate stupidity.
The real problem is that ppp_read() can't handle non-linear SKBs, so
fix that instead. The easiest way to do that is to put a "struct
iovec iov;" on ppp_read()'s stack, fill it in with ther user buffer
pointer and length, then use that to call
skb_copy_datagram_const_iovec().
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists