diff options
author | 2013-06-12 17:54:51 +0200 | |
---|---|---|
committer | 2013-06-20 11:20:13 +0200 | |
commit | 130ffbc2638ddc290fcbabe1b9ce6a5d333a6a97 (patch) | |
tree | 79f5f278a8c98d2c569772bb5f7d72836da795d3 /net/netfilter/nfnetlink_cttimeout.c | |
parent | ndisc: Convert use of typedef ctl_table to struct ctl_table (diff) | |
download | linux-130ffbc2638ddc290fcbabe1b9ce6a5d333a6a97.tar.gz linux-130ffbc2638ddc290fcbabe1b9ce6a5d333a6a97.tar.bz2 linux-130ffbc2638ddc290fcbabe1b9ce6a5d333a6a97.zip |
netfilter: check return code from nla_parse_tested
These are the only calls under net/ that do not check nla_parse_nested()
for its error code, but simply continue execution. If parsing of netlink
attributes fails, we should return with an error instead of continuing.
In nearly all of these calls we have a policy attached, that is being
type verified during nla_parse_nested(), which we would miss checking
for otherwise.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net/netfilter/nfnetlink_cttimeout.c')
-rw-r--r-- | net/netfilter/nfnetlink_cttimeout.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/netfilter/nfnetlink_cttimeout.c b/net/netfilter/nfnetlink_cttimeout.c index 65074dfb9383..50580494148d 100644 --- a/net/netfilter/nfnetlink_cttimeout.c +++ b/net/netfilter/nfnetlink_cttimeout.c @@ -59,8 +59,10 @@ ctnl_timeout_parse_policy(struct ctnl_timeout *timeout, if (likely(l4proto->ctnl_timeout.nlattr_to_obj)) { struct nlattr *tb[l4proto->ctnl_timeout.nlattr_max+1]; - nla_parse_nested(tb, l4proto->ctnl_timeout.nlattr_max, - attr, l4proto->ctnl_timeout.nla_policy); + ret = nla_parse_nested(tb, l4proto->ctnl_timeout.nlattr_max, + attr, l4proto->ctnl_timeout.nla_policy); + if (ret < 0) + return ret; ret = l4proto->ctnl_timeout.nlattr_to_obj(tb, net, &timeout->data); |