On 31.08.2021 16:58, Alexey Kuznetsov wrote:
Hello!

On Tue, Aug 31, 2021 at 9:37 PM Pavel Tikhomirov
<[email protected]> wrote:
Please take a look on OPT_SUBTYPE and OPT_SOURCE options, do we actually
need strncpy here?

Formally, сheck if (param->size > FUSE_KIO_NAME) must be enough.

But better be safe than sorry. In this particular context we have no idea
that param->size is correlated to actual string length. You may believe
to caller, I would not.


vfs_parse_fs_string with it's kmemdup_nul already
puts null-terminated string in param.string, similarly null-terminated
string is provided by sys_fsconfig with strndup_user(_value, 256);

Wrong! If you copy OPT_SUBTYPE or OPT_SOURCE
to a buffer you use strncpy limited to sizeof of your local buffer
no matter what is written on that fence :-)

Sure you are right, if we have

char kio_name[FUSE_KIO_NAME + 1];

and when we copy something to it we should limit strncpy with FUSE_KIO_NAME size to be on the safe side.

So I just wanted to highlight that mainstream code relies that param->string is a pointer to null terminated string and it can be "stolen" like they do for OPT_SUBTYPE. So that we can do it too (replacing kio_name buf with pointer and staff...). But I don't insist.

Reviewed-by: Pavel Tikhomirov <[email protected]>

--
Best regards, Tikhomirov Pavel
Software Developer, Virtuozzo.
_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to