Quoting Eric W. Biederman (2013-10-10 15:47:45)
Sebastian Capella sebastian.capella@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@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