[PATCH v3 1/2] init/do_mounts.c: ignore final \n in name_to_dev_t
Sebastian Capella
sebastian.capella at linaro.org
Thu Oct 10 19:39:19 EDT 2013
Quoting Eric W. Biederman (2013-10-10 15:47:45)
> Sebastian Capella <sebastian.capella at linaro.org> writes:
>
> > Quoting Sebastian Capella (2013-10-03 16:47:35)
> >> Quoting Sebastian Capella (2013-10-03 14:42:46)
> >> > Quoting Andrew Morton (2013-10-03 14:15:23)
> >> > > On Thu, 3 Oct 2013 14:10:37 -0700 Sebastian Capella <sebastian.capella at linaro.org> wrote:
> >> > >
> >> > > > Enhance name_to_dev_t to handle trailing newline characters
> >> > > > on device paths. Some inputs to name_to_dev_t may come from
> >> > > > userspace where oftentimes a '\n' is appended to the path.
> >> > > > Added const to the name buffer in both the function
> >> > > > declaration and the prototype to reflect input buffer
> >> > > > handling.
> >> > > >
> >> > > > By handling trailing newlines in name_to_dev_t, userspace
> >> > > > buffers may be directly passed to name_to_dev_t without
> >> > > > modification.
> >> > >
> >> > > We have lib/string.c:strim() - perhaps this patch would be
> >> > > neater if it were to use it?
> >> >
> >> > I was intending to respect the const handling of the input buffer.
> >> >
> >> I looked into removing the const from the store function, but I'm not sure
> >> this is the right idea, so I'm going to shelf that for now.
> >>
> >> Please let me know your thoughts.
> >>
> What is wrong with requiring userspace to use echo -n ?
>
> That by far seems the simplest and least error prone solution.
>
> Eric
Trimmed back some of the history above.
Hi Eric,
Thanks for your comment. While this does solve the problem for that case,
I haven't generally seen sysfs files requiring 'echo -n' before.
If you look in kernel/power/main.c, you can see that in other cases where
you're echoing a string onto a sysfs file, the code will handle the \n.
I expect it would likely be confusing for users. The net effect would
be that if you omit the -n, it report something like:
write error: Invalid argument
as if you'd mistyped the resume file.
Thanks,
Sebastian
More information about the linux-arm-kernel
mailing list