提交 e400c285 编写于 作者: D Dan Carpenter 提交者: Linus Torvalds

cgroups: save space for the terminator

The original code didn't leave enough space for a NULL terminator.  These
strings are copied with strcpy() into fixed length buffers in
cgroup_root_from_opts().
Signed-off-by: NDan Carpenter <error27@gmail.com>
Acked-by: NSerge E. Hallyn <serge@hallyn.com>
Reviewd-by: NKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Paul Menage <menage@google.com>
Cc: Li Zefan <lizf@cn.fujitsu.com>
Cc: Ben Blum <bblum@andrew.cmu.edu>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 2b24706a
...@@ -1102,7 +1102,7 @@ static int parse_cgroupfs_options(char *data, struct cgroup_sb_opts *opts) ...@@ -1102,7 +1102,7 @@ static int parse_cgroupfs_options(char *data, struct cgroup_sb_opts *opts)
if (opts->release_agent) if (opts->release_agent)
return -EINVAL; return -EINVAL;
opts->release_agent = opts->release_agent =
kstrndup(token + 14, PATH_MAX, GFP_KERNEL); kstrndup(token + 14, PATH_MAX - 1, GFP_KERNEL);
if (!opts->release_agent) if (!opts->release_agent)
return -ENOMEM; return -ENOMEM;
} else if (!strncmp(token, "name=", 5)) { } else if (!strncmp(token, "name=", 5)) {
...@@ -1123,7 +1123,7 @@ static int parse_cgroupfs_options(char *data, struct cgroup_sb_opts *opts) ...@@ -1123,7 +1123,7 @@ static int parse_cgroupfs_options(char *data, struct cgroup_sb_opts *opts)
if (opts->name) if (opts->name)
return -EINVAL; return -EINVAL;
opts->name = kstrndup(name, opts->name = kstrndup(name,
MAX_CGROUP_ROOT_NAMELEN, MAX_CGROUP_ROOT_NAMELEN - 1,
GFP_KERNEL); GFP_KERNEL);
if (!opts->name) if (!opts->name)
return -ENOMEM; return -ENOMEM;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册