Netdev List
 help / color / mirror / Atom feed
* [PATCH v2 0/2] netlink: extended attribute validation
@ 2018-09-27  9:28 Johannes Berg
  2018-09-27  9:28 ` [PATCH v2 1/2] netlink: add attribute range validation to policy Johannes Berg
  2018-09-27  9:28 ` [PATCH v2 2/2] netlink: add validation function " Johannes Berg
  0 siblings, 2 replies; 3+ messages in thread
From: Johannes Berg @ 2018-09-27  9:28 UTC (permalink / raw)
  To: linux-wireless, netdev; +Cc: Michal Kubecek

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.

johannes

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-09-27 15:46 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-09-27  9:28 [PATCH v2 0/2] netlink: extended attribute validation Johannes Berg
2018-09-27  9:28 ` [PATCH v2 1/2] netlink: add attribute range validation to policy Johannes Berg
2018-09-27  9:28 ` [PATCH v2 2/2] netlink: add validation function " Johannes Berg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox