Merge branch 'netlink-extended-attribute-validation'
authorDavid S. Miller <davem@davemloft.net>
Tue, 2 Oct 2018 06:05:32 +0000 (23:05 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 2 Oct 2018 06:05:32 +0000 (23:05 -0700)
commita1fa80802cb02cb043fd61b87bc81c06a38b4bb1
treebd3980a02a9896a5a1d60936b451ce40efc44349
parent6140cc20caf7da861fb113a707e0acc36bd358ec
parent33188bd6430ef06d206ae4fda2cc92f14f16fd20
Merge branch 'netlink-extended-attribute-validation'

Johannes Berg says:

====================
netlink: extended attribute validation

This adds further netlink attribute validation:
 * min/max/range validation
 * validation through a custom function pointer

This is useful to
 * reduce boilerplate code in command handling code, if attributes
   are used commonly across different commands
 * get more extended ACK error messages/attribute pointers
 * ensure attributes are valid even when ignored
   (though this might be a problem when converting existing code)

Changes since v1:
 * split off validate_type from type and use that for min/max/range
   and function; this is better because the range is limited to the
   range of s16 and so things like "u16 with minimum value 1" couldn't
   be expressed earlier
 * add macros for this, e.g. NLA_POLICY_MIN(NLA_U16, 1) for the case
   mentioned in the previous bullet

Using this pretty much in all places where applicable in nl80211
reduces the code size there by about 1.8KiB, with just a minimal
code increase in lib/nlattr.o.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>