]> git.baikalelectronics.ru Git - kernel.git/commit
netfilter: nf_ct_ftp: prefer skb_linearize
authorFlorian Westphal <fw@strlen.de>
Tue, 9 Aug 2022 13:16:34 +0000 (15:16 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Thu, 11 Aug 2022 14:51:01 +0000 (16:51 +0200)
commitd0d9cc73656276d5db4cf4fa59f93f3e6073eb10
tree7c7af22049aa18947e20424f211e8064020ef370
parent52f9dd99e3bb5a2e5dabc8a61f5d9b6dede3bbc6
netfilter: nf_ct_ftp: prefer skb_linearize

This uses a pseudo-linearization scheme with a 64k global buffer,
but BIG TCP arrival means IPv6 TCP stack can generate skbs
that exceed this size.

Use skb_linearize.  It should be possible to rewrite this to properly
deal with segmented skbs (i.e., only do small chunk-wise accesses),
but this is going to be a lot more intrusive than this because every
helper function needs to get the sk_buff instead of a pointer to a raw
data buffer.

In practice, provided we're really looking at FTP control channel packets,
there should never be a case where we deal with huge packets.

Fixes: 0925d890ea69 ("net: allow gso_max_size to exceed 65536")
Fixes: 13783a4e60e6 ("net: allow gro_max_size to exceed 65536")
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_conntrack_ftp.c