On Wed, Dec 13, 2017 at 4:56 AM, Stephen Rothwell <s...@canb.auug.org.au> wrote:
> Hi Tejun,
>
> After merging the cgroup tree, today's linux-next build (arm
> multi_v7_defconfig) produced this warning:
>
> kernel/cgroup/cgroup.c: In function 'init_cgroup_root':
> kernel/cgroup/cgroup.c:1867:3: warning: ignoring return value of 'strscpy', 
> declared with attribute warn_unused_result [-Wunused-result]
>    strscpy(root->release_agent_path, opts->release_agent, PATH_MAX);
>    ^
> kernel/cgroup/cgroup.c:1869:3: warning: ignoring return value of 'strscpy', 
> declared with attribute warn_unused_result [-Wunused-result]
>    strscpy(root->name, opts->name, MAX_CGROUP_ROOT_NAMELEN);
>    ^
> kernel/cgroup/cgroup.c: In function 'cgroup_file_name':
> kernel/cgroup/cgroup.c:1400:3: warning: ignoring return value of 'strscpy', 
> declared with attribute warn_unused_result [-Wunused-result]
>    strscpy(buf, cft->name, CGROUP_FILE_NAME_MAX);
>    ^
>
> Introduced by commit
>
>   e7fd37ba1217 ("cgroup: avoid copying strings longer than the buffers")

As long as cft->name is guaranteed to be NUL-terminated, using strlcpy() would
work just as well and avoid that warning, so the change below could be folded
into that commit.

Signed-off-by: Arnd Bergmann <a...@arndb.de>

diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c
index dc442a5d88b9..3cced1259cd3 100644
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
@@ -1397,7 +1397,7 @@ static char *cgroup_file_name(struct cgroup
*cgrp, const struct cftype *cft,
                         cgroup_on_dfl(cgrp) ? ss->name : ss->legacy_name,
                         cft->name);
        else
-               strscpy(buf, cft->name, CGROUP_FILE_NAME_MAX);
+               strlcpy(buf, cft->name, CGROUP_FILE_NAME_MAX);
        return buf;
 }

@@ -1874,9 +1874,9 @@ void init_cgroup_root(struct cgroup_root *root,
struct cgroup_sb_opts *opts)

        root->flags = opts->flags;
        if (opts->release_agent)
-               strscpy(root->release_agent_path, opts->release_agent,
PATH_MAX);
+               strlcpy(root->release_agent_path, opts->release_agent,
PATH_MAX);
        if (opts->name)
-               strscpy(root->name, opts->name, MAX_CGROUP_ROOT_NAMELEN);
+               strlcpy(root->name, opts->name, MAX_CGROUP_ROOT_NAMELEN);
        if (opts->cpuset_clone_children)
                set_bit(CGRP_CPUSET_CLONE_CHILDREN, &root->cgrp.flags);
 }

Reply via email to