On Mon, Sep 07, 2020 at 12:28:05PM +0200, Bartosz Golaszewski wrote:
On Mon, Sep 7, 2020 at 12:19 PM Andy Shevchenko
[off-list ref] wrote:
quoted
On Mon, Sep 7, 2020 at 1:05 PM Bartosz Golaszewski
[off-list ref] wrote:
quoted
On Fri, Sep 4, 2020 at 6:35 PM Andy Shevchenko
[off-list ref] wrote:
quoted
On Fri, Sep 04, 2020 at 05:45:27PM +0200, Bartosz Golaszewski wrote:
quoted
From: Bartosz Golaszewski <redacted>
quoted
quoted
Doesn't mm/util.c provides us something like this?
strndup_user()?
Yes, there's both strndup_user() as well as strncpy_from_user(). The
problem is that they rely on the strings being NULL-terminated. This
is not guaranteed for debugfs file_operations write callbacks. We need
some helper that takes the minimum of bytes provided by userspace and
the buffer size and figure out how many bytes to actually copy IMO.
Wouldn't this [1] approach work?
[1]: https://elixir.bootlin.com/linux/v5.9-rc3/source/arch/x86/kernel/cpu/mtrr/if.c#L93
Sure, but this is pretty much what I do in getline_from_user(). If
anything we should port mtrr_write() to using getline_from_user() once
it's available upstream, no?
But you may provide getline_from_user() as inline in the same header where
strncpy_from_user() is declared. It will be like 3 LOCs?
--
With Best Regards,
Andy Shevchenko