Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf
authorDavid S. Miller <davem@davemloft.net>
Mon, 13 May 2019 15:55:15 +0000 (08:55 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 13 May 2019 15:55:15 +0000 (08:55 -0700)
Pablo Neira Ayuso says:

====================
Netfilter fixes for net

The following patchset contains Netfilter fixes for net:

1) Postpone chain policy update to drop after transaction is complete,
   from Florian Westphal.

2) Add entry to flowtable after confirmation to fix UDP flows with
   packets going in one single direction.

3) Reference count leak in dst object, from Taehee Yoo.

4) Check for TTL field in flowtable datapath, from Taehee Yoo.

5) Fix h323 conntrack helper due to incorrect boundary check,
   from Jakub Jankowski.

6) Fix incorrect rcu dereference when fetching basechain stats,
   from Florian Westphal.

7) Missing error check when adding new entries to flowtable,
   from Taehee Yoo.

8) Use version field in nfnetlink message to honor the nfgen_family
   field, from Kristian Evensen.

9) Remove incorrect configuration check for CONFIG_NF_CONNTRACK_IPV6,
   from Subash Abhinov Kasiviswanathan.

10) Prevent dying entries from being added to the flowtable,
    from Taehee Yoo.

11) Don't hit WARN_ON() with malformed blob in ebtables with
    trailing data after last rule, reported by syzbot, patch
    from Florian Westphal.

12) Remove NFT_CT_TIMEOUT enumeration, never used in the kernel
    code.

13) Fix incorrect definition for NFT_LOGLEVEL_MAX, from Florian
    Westphal.

This batch comes with a conflict that can be fixed with this patch:

diff --cc include/uapi/linux/netfilter/nf_tables.h
index 7bdb234f3d8c,f0cf7b0f4f35..505393c6e959
--- a/include/uapi/linux/netfilter/nf_tables.h
+++ b/include/uapi/linux/netfilter/nf_tables.h
@@@ -966,6 -966,8 +966,7 @@@ enum nft_socket_keys
   * @NFT_CT_DST_IP: conntrack layer 3 protocol destination (IPv4 address)
   * @NFT_CT_SRC_IP6: conntrack layer 3 protocol source (IPv6 address)
   * @NFT_CT_DST_IP6: conntrack layer 3 protocol destination (IPv6 address)
 - * @NFT_CT_TIMEOUT: connection tracking timeout policy assigned to conntrack
+  * @NFT_CT_ID: conntrack id
   */
  enum nft_ct_keys {
   NFT_CT_STATE,
@@@ -991,6 -993,8 +992,7 @@@
   NFT_CT_DST_IP,
   NFT_CT_SRC_IP6,
   NFT_CT_DST_IP6,
 - NFT_CT_TIMEOUT,
+  NFT_CT_ID,
   __NFT_CT_MAX
  };
  #define NFT_CT_MAX (__NFT_CT_MAX - 1)

That replaces the unused NFT_CT_TIMEOUT definition by NFT_CT_ID. If you prefer,
I can also solve this conflict here, just let me know.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
1  2 
include/uapi/linux/netfilter/nf_tables.h
net/bridge/netfilter/ebtables.c
net/netfilter/nf_conntrack_netlink.c
net/netfilter/nf_flow_table_ip.c
net/netfilter/nf_tables_api.c

index f0cf7b0f4f352719056e52db790df82e6512bd14,7bdb234f3d8c0f6ba775a88f03472d31b865958b..505393c6e959ff737fccbf2f8dd8e84750af1e12
@@@ -966,8 -966,6 +966,7 @@@ enum nft_socket_keys 
   * @NFT_CT_DST_IP: conntrack layer 3 protocol destination (IPv4 address)
   * @NFT_CT_SRC_IP6: conntrack layer 3 protocol source (IPv6 address)
   * @NFT_CT_DST_IP6: conntrack layer 3 protocol destination (IPv6 address)
-  * @NFT_CT_TIMEOUT: connection tracking timeout policy assigned to conntrack
 + * @NFT_CT_ID: conntrack id
   */
  enum nft_ct_keys {
        NFT_CT_STATE,
        NFT_CT_DST_IP,
        NFT_CT_SRC_IP6,
        NFT_CT_DST_IP6,
-       NFT_CT_TIMEOUT,
 +      NFT_CT_ID,
        __NFT_CT_MAX
  };
  #define NFT_CT_MAX            (__NFT_CT_MAX - 1)
Simple merge
Simple merge
Simple merge
index d98416e83d4ef2299d24c341c76642cef5f8e15d,e4f6ecac48c3cbed4d12dada6c8814c1f55573f4..28241e82fd150c5aff18c8079118e7f2769ca09a
@@@ -1246,9 -1250,10 +1249,10 @@@ static int nf_tables_fill_chain_info(st
        if (nft_is_base_chain(chain)) {
                const struct nft_base_chain *basechain = nft_base_chain(chain);
                const struct nf_hook_ops *ops = &basechain->ops;
+               struct nft_stats __percpu *stats;
                struct nlattr *nest;
  
 -              nest = nla_nest_start(skb, NFTA_CHAIN_HOOK);
 +              nest = nla_nest_start_noflag(skb, NFTA_CHAIN_HOOK);
                if (nest == NULL)
                        goto nla_put_failure;
                if (nla_put_be32(skb, NFTA_HOOK_HOOKNUM, htonl(ops->hooknum)))