diff options
author | наб <[email protected]> | 2021-04-11 01:18:40 +0200 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2021-04-15 14:55:43 -0700 |
commit | 7de4c88b39473f358add601e8c227ca9002b1bee (patch) | |
tree | 7ce8a26c98a4404935064d9a6dae1f449f1f4fc7 /lib/libspl | |
parent | 2d14207c98b485385a97aa6669c2723eed53bcbb (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/libspl')
0 files changed, 0 insertions, 0 deletions