WSL2-Linux-Kernel/net/netfilter
Vasily Khoruzhick 54ab595280 netfilter: conntrack: fix calculation of next bucket number in early_drop
commit f393808dc6 upstream.

If there's no entry to drop in bucket that corresponds to the hash,
early_drop() should look for it in other buckets. But since it increments
hash instead of bucket number, it actually looks in the same bucket 8
times: hsize is 16k by default (14 bits) and hash is 32-bit value, so
reciprocal_scale(hash, hsize) returns the same value for hash..hash+7 in
most cases.

Fix it by increasing bucket number instead of hash and rename _hash
to bucket to avoid future confusion.

Fixes: 3e86638e9a ("netfilter: conntrack: consider ct netns in early_drop logic")
Cc: <stable@vger.kernel.org> # v4.7+
Signed-off-by: Vasily Khoruzhick <vasilykh@arista.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-11-21 09:24:09 +01:00
..
ipset netfilter: ipset: forbid family for hash:mac sets 2018-08-03 07:50:23 +02:00
ipvs ipvs: fix race between ip_vs_conn_new() and ip_vs_del_dest() 2018-09-15 09:45:28 +02:00
Kconfig
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
core.c netfilter: core: remove erroneous warn_on 2017-09-08 18:55:52 +02:00
nf_conntrack_acct.c
nf_conntrack_amanda.c
nf_conntrack_broadcast.c
nf_conntrack_core.c netfilter: conntrack: fix calculation of next bucket number in early_drop 2018-11-21 09:24:09 +01:00
nf_conntrack_ecache.c
nf_conntrack_expect.c net: Replace NF_CT_ASSERT() with WARN_ON(). 2017-09-04 13:25:19 +02:00
nf_conntrack_extend.c net: Replace NF_CT_ASSERT() with WARN_ON(). 2017-09-04 13:25:19 +02:00
nf_conntrack_ftp.c
nf_conntrack_h323_asn1.c
nf_conntrack_h323_main.c
nf_conntrack_h323_types.c
nf_conntrack_helper.c netfilter: nf_ct_helper: Fix possible panic after nf_conntrack_helper_unregister 2018-08-24 13:08:57 +02:00
nf_conntrack_irc.c
nf_conntrack_l3proto_generic.c
nf_conntrack_labels.c
nf_conntrack_netbios_ns.c
nf_conntrack_netlink.c netfilter: fix memory leaks on netlink_dump_start error 2018-09-15 09:45:28 +02:00
nf_conntrack_pptp.c
nf_conntrack_proto.c
nf_conntrack_proto_dccp.c netfilter: conntrack: dccp: treat SYNC/SYNCACK as invalid if no prior state 2018-08-24 13:09:22 +02:00
nf_conntrack_proto_generic.c netfilter: remove unused hooknum arg from packet functions 2017-09-04 13:25:18 +02:00
nf_conntrack_proto_gre.c netfilter: remove unused hooknum arg from packet functions 2017-09-04 13:25:18 +02:00
nf_conntrack_proto_sctp.c netfilter: remove unused hooknum arg from packet functions 2017-09-04 13:25:18 +02:00
nf_conntrack_proto_tcp.c netfilter: remove unused hooknum arg from packet functions 2017-09-04 13:25:18 +02:00
nf_conntrack_proto_udp.c netfilter: remove unused hooknum arg from packet functions 2017-09-04 13:25:18 +02:00
nf_conntrack_sane.c
nf_conntrack_seqadj.c
nf_conntrack_sip.c
nf_conntrack_snmp.c
nf_conntrack_standalone.c net: Replace NF_CT_ASSERT() with WARN_ON(). 2017-09-04 13:25:19 +02:00
nf_conntrack_tftp.c
nf_conntrack_timeout.c
nf_conntrack_timestamp.c
nf_dup_netdev.c
nf_internals.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
nf_log.c netfilter: nf_log: fix uninit read in nf_log_proc_dostring 2018-08-24 13:09:07 +02:00
nf_log_common.c
nf_log_netdev.c
nf_nat_amanda.c
nf_nat_core.c netfilter: nat: Do not use ARRAY_SIZE() on spinlocks to fix zero div 2017-09-18 17:33:23 +02:00
nf_nat_ftp.c
nf_nat_helper.c
nf_nat_irc.c
nf_nat_proto_common.c netfilter: nat: cope with negative port range 2018-03-15 10:54:23 +01:00
nf_nat_proto_dccp.c
nf_nat_proto_sctp.c
nf_nat_proto_tcp.c
nf_nat_proto_udp.c
nf_nat_proto_unknown.c
nf_nat_redirect.c net: Replace NF_CT_ASSERT() with WARN_ON(). 2017-09-04 13:25:19 +02:00
nf_nat_sip.c
nf_nat_tftp.c
nf_queue.c
nf_sockopt.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
nf_synproxy_core.c
nf_tables_api.c netfilter: nf_tables: release chain in flushing set 2018-10-10 08:54:23 +02:00
nf_tables_core.c netfilter: nf_tables: use WARN_ON_ONCE instead of BUG_ON in nft_do_chain() 2018-07-08 15:30:50 +02:00
nf_tables_inet.c
nf_tables_netdev.c
nf_tables_trace.c
nfnetlink.c
nfnetlink_acct.c netfilter: fix memory leaks on netlink_dump_start error 2018-09-15 09:45:28 +02:00
nfnetlink_cthelper.c netfilter: nfnetlink_cthelper: Add missing permission checks 2018-01-31 14:03:41 +01:00
nfnetlink_cttimeout.c
nfnetlink_log.c
nfnetlink_queue.c netfilter: nf_queue: augment nfqa_cfg_policy 2018-07-17 11:39:32 +02:00
nft_bitwise.c
nft_byteorder.c
nft_cmp.c
nft_compat.c netfilter: nft_compat: explicitly reject ERROR and standard target 2018-08-24 13:09:15 +02:00
nft_counter.c netfilter: nf_tables: add select_ops for stateful objects 2017-09-04 13:25:09 +02:00
nft_ct.c netfilter: nf_tables: fix NULL pointer dereference on nft_ct_helper_obj_dump() 2018-06-16 09:45:14 +02:00
nft_dup_netdev.c
nft_dynset.c
nft_exthdr.c
nft_fib.c
nft_fib_inet.c
nft_fib_netdev.c
nft_fwd_netdev.c
nft_hash.c
nft_immediate.c netfilter: nf_tables: bogus EBUSY in chain deletions 2018-07-08 15:30:49 +02:00
nft_limit.c netfilter: nft_limit: fix packet ratelimiting 2018-07-08 15:30:51 +02:00
nft_log.c
nft_lookup.c
nft_masq.c
nft_meta.c netfilter: nft_meta: fix wrong value dereference in nft_meta_set_eval 2018-07-08 15:30:49 +02:00
nft_nat.c
nft_numgen.c
nft_objref.c netfilter: nf_tables: add select_ops for stateful objects 2017-09-04 13:25:09 +02:00
nft_payload.c
nft_queue.c
nft_quota.c netfilter: nf_tables: add select_ops for stateful objects 2017-09-04 13:25:09 +02:00
nft_range.c
nft_redir.c
nft_reject.c
nft_reject_inet.c
nft_rt.c
nft_set_bitmap.c
nft_set_hash.c netfilter: nft_set_hash: add rcu_barrier() in the nft_rhash_destroy() 2018-09-05 09:26:27 +02:00
nft_set_rbtree.c
x_tables.c netfilter: x_tables: limit allocation requests for blob rule heads 2018-04-26 11:02:21 +02:00
xt_AUDIT.c
xt_CHECKSUM.c
xt_CLASSIFY.c
xt_CONNSECMARK.c
xt_CT.c
xt_DSCP.c
xt_HL.c
xt_HMARK.c
xt_IDLETIMER.c netfilter: x_tables: fix pointer leaks to userspace 2018-04-26 11:02:13 +02:00
xt_LED.c netfilter: x_tables: fix pointer leaks to userspace 2018-04-26 11:02:13 +02:00
xt_LOG.c
xt_NETMAP.c net: Replace NF_CT_ASSERT() with WARN_ON(). 2017-09-04 13:25:19 +02:00
xt_NFLOG.c
xt_NFQUEUE.c
xt_RATEEST.c netfilter: xt_RATEEST: acquire xt_rateest_mutex for hash insert 2018-02-25 11:07:50 +01:00
xt_REDIRECT.c
xt_SECMARK.c
xt_TCPMSS.c
xt_TCPOPTSTRIP.c
xt_TEE.c
xt_TPROXY.c
xt_TRACE.c
xt_addrtype.c
xt_bpf.c netfilter: xt_bpf: add overflow checks 2018-02-25 11:08:01 +01:00
xt_cgroup.c netfilter: xt_cgroup: initialize info->priv in cgroup_mt_check_v1() 2018-02-25 11:07:50 +01:00
xt_cluster.c netfilter: xt_cluster: add dependency on conntrack module 2018-10-10 08:54:23 +02:00
xt_comment.c
xt_connbytes.c
xt_connlabel.c
xt_connlimit.c
xt_connmark.c
xt_conntrack.c
xt_cpu.c
xt_dccp.c
xt_devgroup.c
xt_dscp.c
xt_ecn.c
xt_esp.c
xt_hashlimit.c netfilter: x_tables: add and use xt_check_proc_name 2018-04-08 14:26:29 +02:00
xt_helper.c
xt_hl.c
xt_ipcomp.c
xt_iprange.c
xt_ipvs.c
xt_l2tp.c
xt_length.c
xt_limit.c netfilter: x_tables: fix pointer leaks to userspace 2018-04-26 11:02:13 +02:00
xt_mac.c
xt_mark.c
xt_multiport.c
xt_nat.c net: Replace NF_CT_ASSERT() with WARN_ON(). 2017-09-04 13:25:19 +02:00
xt_nfacct.c netfilter: x_tables: fix pointer leaks to userspace 2018-04-26 11:02:13 +02:00
xt_osf.c netfilter: xt_osf: Add missing permission checks 2018-01-31 14:03:41 +01:00
xt_owner.c
xt_physdev.c
xt_pkttype.c
xt_policy.c
xt_quota.c
xt_rateest.c
xt_realm.c
xt_recent.c netfilter: x_tables: add and use xt_check_proc_name 2018-04-08 14:26:29 +02:00
xt_repldata.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
xt_sctp.c
xt_set.c
xt_socket.c netfilter: xt_socket: Restore mark from full sockets only 2017-09-26 20:04:34 +02:00
xt_state.c
xt_statistic.c netfilter: x_tables: fix pointer leaks to userspace 2018-04-26 11:02:13 +02:00
xt_string.c
xt_tcpmss.c
xt_tcpudp.c
xt_time.c
xt_u32.c