Merge branch 'netlink-export-policy-on-validation-failures'
authorJakub Kicinski <kuba@kernel.org>
Sat, 10 Oct 2020 03:22:49 +0000 (20:22 -0700)
committerJakub Kicinski <kuba@kernel.org>
Sat, 10 Oct 2020 03:22:49 +0000 (20:22 -0700)
commitc77fb07fae36a02c382b729f856d45dade88a581
treee36d5d8e5795a8992618cc2f756c5bc38d977434
parentc4cc0b9c771a5199ef4e37f65e12dd25c56859d6
parent44f3625bc61653ea3bde9960298faf2f5518fda5
Merge branch 'netlink-export-policy-on-validation-failures'

Johannes Berg says:

====================
netlink: export policy on validation failures

Export the policy used for attribute validation when it fails,
so e.g. for an out-of-range attribute userspace immediately gets
the valid ranges back.

v2 incorporates the suggestion from Jakub to have a function to
estimate the size (netlink_policy_dump_attr_size_estimate()) and
check that it does the right thing on the *normal* policy dumps,
not (just) when calling it from the error scenario.

v3 only addresses a few minor style issues.

v4 fixes up a forgotten 'git add' ... sorry.

v5 is a resend, I messed up v4's cover letter subject (saying v3)
and apparently the second patch didn't go out at all.

Tested using nl80211/iw in a few scenarios, seems to work fine
and return the policy back, e.g.

kernel reports: integer out of range
policy: 04 00 0b 00 0c 00 04 00 01 00 00 00 00 00 00 00
        ^ padding
                    ^ minimum allowed value
policy: 04 00 0b 00 0c 00 05 00 ff ff ff ff 00 00 00 00
        ^ padding
                    ^ maximum allowed value
policy: 08 00 01 00 04 00 00 00
        ^ type 4 == U32

for an out-of-range case.
====================

Signed-off-by: Jakub Kicinski <kuba@kernel.org>