From: Johannes Berg <johan...@sipsolutions.net> Date: Mon, 17 Sep 2018 11:57:29 +0200
> From: Johannes Berg <johannes.b...@intel.com> > > Commonly, ethernet addresses are just using a policy of > { .len = ETH_ALEN } > which leaves userspace free to send more data than it should, > which may hide bugs. > > Introduce NLA_EXACT_LEN which checks for exact size, rejecting > the attribute if it's not exactly that length. Also add > NLA_EXACT_LEN_WARN which requires the minimum length and will > warn on longer attributes, for backward compatibility. > > Use these to define NLA_POLICY_ETH_ADDR (new strict policy) and > NLA_POLICY_ETH_ADDR_COMPAT (compatible policy with warning); > these are used like this: > > static const struct nla_policy <name>[...] = { > [NL_ATTR_NAME] = NLA_POLICY_ETH_ADDR, > ... > }; > > Signed-off-by: Johannes Berg <johannes.b...@intel.com> > --- > v2: add only NLA_EXACT_LEN/NLA_EXACT_LEN_WARN and build on top > of that for ethernet address validation, so it can be extended > for other types (e.g. IPv6 addresses) Applied.