diff options
author | Liping Zhang <liping.zhang@spreadtrum.com> | 2016-08-08 22:10:26 +0800 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2016-08-09 10:39:26 +0200 |
commit | aa0c2c68abd1e2915656cc81afdb195bc8595dec (patch) | |
tree | 357b67f1a5a9e7339701af9b3dbce83f026c9f5a /net | |
parent | 00a3101f561816e58de054a470484996f78eb5eb (diff) | |
download | linux-stable-aa0c2c68abd1e2915656cc81afdb195bc8595dec.tar.gz linux-stable-aa0c2c68abd1e2915656cc81afdb195bc8595dec.tar.bz2 linux-stable-aa0c2c68abd1e2915656cc81afdb195bc8595dec.zip |
netfilter: ctnetlink: reject new conntrack request with different l4proto
Currently, user can add a conntrack with different l4proto via nfnetlink.
For example, original tuple is TCP while reply tuple is SCTP. This is
invalid combination, we should report EINVAL to userspace.
Signed-off-by: Liping Zhang <liping.zhang@spreadtrum.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net')
-rw-r--r-- | net/netfilter/nf_conntrack_netlink.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c index b9bfe64e232c..fdfc71f416b7 100644 --- a/net/netfilter/nf_conntrack_netlink.c +++ b/net/netfilter/nf_conntrack_netlink.c @@ -1894,6 +1894,8 @@ static int ctnetlink_new_conntrack(struct net *net, struct sock *ctnl, if (!cda[CTA_TUPLE_ORIG] || !cda[CTA_TUPLE_REPLY]) return -EINVAL; + if (otuple.dst.protonum != rtuple.dst.protonum) + return -EINVAL; ct = ctnetlink_create_conntrack(net, &zone, cda, &otuple, &rtuple, u3); |