On Mon, 19 Oct 2020 18:31:52 -0700 Xie He wrote: > The hdlc_rcv function is used as hdlc_packet_type.func to process any > skb received in the kernel with skb->protocol == htons(ETH_P_HDLC). > The purpose of this function is to provide second-stage processing for > skbs not assigned a "real" L3 skb->protocol value in the first stage. > > This function assumes the device from which the skb is received is an > HDLC device (a device created by this module). It assumes that > netdev_priv(dev) returns a pointer to "struct hdlc_device". > > However, it is possible that some driver in the kernel (not necessarily > in our control) submits a received skb with skb->protocol == > htons(ETH_P_HDLC), from a non-HDLC device. In this case, the skb would > still be received by hdlc_rcv. This will cause problems. > > hdlc_rcv should be able to recognize and drop invalid skbs. It should > first make sure "dev" is actually an HDLC device, before starting its > processing. This patch adds this check to hdlc_rcv. > > Cc: Krzysztof Halasa <k...@pm.waw.pl> > Signed-off-by: Xie He <xie.he.0...@gmail.com>
Applied, thank you!