[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