diff options
author | наб <[email protected]> | 2021-04-11 01:18:40 +0200 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2021-04-19 15:22:57 -0700 |
commit | e5c4f86e7a82bf0e62b623fb5701c365b0c21208 (patch) | |
tree | 4b45d9064d35682866236b5b4f38a112dba39335 /lib | |
parent | 4c925936e3e392771a7c2820d847079e723bcf70 (diff) |
linux/spl: base proc_dohostid() on proc_dostring()
This fixes /proc/sys/kernel/spl/hostid on kernels with mainline commit
32927393dc1ccd60fb2bdc05b9e8e88753761469 ("sysctl: pass kernel pointers
to ->proc_handler") ‒ 5.7-rc1 and up
The access_ok() check in copy_to_user() in proc_copyout_string() would
always fail, so all userspace reads and writes would fail with EINVAL
proc_dostring() strips only the final new-line,
but simple_strtoul() doesn't actually need a back-trimmed string ‒
writing "012345678 \n" is still allowed, as is "012345678zupsko", &c.
This alters what happens when an invalid value is written ‒
previously it'd get set to what-ever simple_strtoul() returned
(probably 0, thereby resetting it to default), now it does nothing
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Ahelenia Ziemiańska <[email protected]>
Closes #11878
Closes #11879
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions