Message ID | 20210803105937.52052-3-thuth@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Fix /proc/sys/fs/nfs/nsm_use_hostnames on big endian machines | expand |
On Tue, Aug 03, 2021 at 12:59:37PM +0200, Thomas Huth wrote: > From: Jia He <hejianet@gmail.com> > > nsm_use_hostnames is a module parameter and it will be exported to sysctl > procfs. This is to let user sometimes change it from userspace. But the > minimal unit for sysctl procfs read/write it sizeof(int). > In big endian system, the converting from/to bool to/from int will cause > error for proc items. > > This patch use a new proc_handler proc_dobool to fix it. > > Signed-off-by: Jia He <hejianet@gmail.com> > Reviewed-by: Pan Xinhui <xinhui.pan@linux.vnet.ibm.com> > [thuth: Fix typo in commit message] > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > fs/lockd/svc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/lockd/svc.c b/fs/lockd/svc.c > index 2de048f80eb8..0ab9756ed235 100644 > --- a/fs/lockd/svc.c > +++ b/fs/lockd/svc.c > @@ -584,7 +584,7 @@ static struct ctl_table nlm_sysctls[] = { > .data = &nsm_use_hostnames, > .maxlen = sizeof(int), For robustness, maybe this should be: .maxlen = sizeof(nsm_use_hostnames), > .mode = 0644, > - .proc_handler = proc_dointvec, > + .proc_handler = proc_dobool, > }, > { > .procname = "nsm_local_state", > -- > 2.27.0 > Reviewed-by: Kees Cook <keescook@chromium.org> Also, I wonder what other BE-corrupted bools are out there?
diff --git a/fs/lockd/svc.c b/fs/lockd/svc.c index 2de048f80eb8..0ab9756ed235 100644 --- a/fs/lockd/svc.c +++ b/fs/lockd/svc.c @@ -584,7 +584,7 @@ static struct ctl_table nlm_sysctls[] = { .data = &nsm_use_hostnames, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = proc_dointvec, + .proc_handler = proc_dobool, }, { .procname = "nsm_local_state",