netfilter: x_tables: ensure names are nul-terminated
Reject names that lack a \0 character before feeding them
to functions that expect c-strings.
Fixes tag is the most recent commit that needs this change.
Fixes: c38c4597e4 ("netfilter: implement xt_cgroup cgroup2 path match")
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
master
parent
6d52a4a052
commit
a958a4f90d
|
|
@ -65,6 +65,9 @@ static int cgroup_mt_check_v1(const struct xt_mtchk_param *par)
|
|||
|
||||
info->priv = NULL;
|
||||
if (info->has_path) {
|
||||
if (strnlen(info->path, sizeof(info->path)) >= sizeof(info->path))
|
||||
return -ENAMETOOLONG;
|
||||
|
||||
cgrp = cgroup_get_from_path(info->path);
|
||||
if (IS_ERR(cgrp)) {
|
||||
pr_info_ratelimited("invalid path, errno=%ld\n",
|
||||
|
|
@ -102,6 +105,9 @@ static int cgroup_mt_check_v2(const struct xt_mtchk_param *par)
|
|||
|
||||
info->priv = NULL;
|
||||
if (info->has_path) {
|
||||
if (strnlen(info->path, sizeof(info->path)) >= sizeof(info->path))
|
||||
return -ENAMETOOLONG;
|
||||
|
||||
cgrp = cgroup_get_from_path(info->path);
|
||||
if (IS_ERR(cgrp)) {
|
||||
pr_info_ratelimited("invalid path, errno=%ld\n",
|
||||
|
|
|
|||
|
|
@ -91,6 +91,11 @@ static int xt_rateest_mt_checkentry(const struct xt_mtchk_param *par)
|
|||
goto err1;
|
||||
}
|
||||
|
||||
if (strnlen(info->name1, sizeof(info->name1)) >= sizeof(info->name1))
|
||||
return -ENAMETOOLONG;
|
||||
if (strnlen(info->name2, sizeof(info->name2)) >= sizeof(info->name2))
|
||||
return -ENAMETOOLONG;
|
||||
|
||||
ret = -ENOENT;
|
||||
est1 = xt_rateest_lookup(par->net, info->name1);
|
||||
if (!est1)
|
||||
|
|
|
|||
Loading…
Reference in New Issue