[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20160226.124645.2123990166666725876.davem@davemloft.net>
Date: Fri, 26 Feb 2016 12:46:45 -0500 (EST)
From: David Miller <davem@...emloft.net>
To: willemdebruijn.kernel@...il.com
Cc: alan@...ux.intel.com, hessu@....iki.fi, netdev@...r.kernel.org,
willemb@...gle.com
Subject: Re: Sending short raw packets using sendmsg() broke
From: Willem de Bruijn <willemdebruijn.kernel@...il.com>
Date: Fri, 26 Feb 2016 12:33:13 -0500
> Right. The simplest, if hacky, fix is to add something along the lines of
>
> static unsigned short netdev_min_hard_header_len(struct net_device *dev)
> {
> if (unlikely(dev->type ==ARPHDR_AX25))
> return AX25_KISS_HEADER_LEN;
> else
> return dev->hard_header_len;
> }
>
> Depending on how the variable encoding scheme works, a basic min
> length check may still produce buggy headers that confuse the stack or
> driver. I need to read up on AX25. If so, then extending header_ops
> with an optional validate() function is a more generic approach of
> checking header sanity.
I suspect we will need some kind of header ops for this.
Powered by blists - more mailing lists