netfilter: nfnetlink_cttimeout: fetch timeouts for udplite and gre, too
authorFlorian Westphal <fw@strlen.de>
Sat, 17 Nov 2018 10:32:29 +0000 (11:32 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 26 Nov 2018 09:25:20 +0000 (10:25 +0100)
commit89259088c1b7fecb43e8e245dc931909132a4e03
treed861dbca5198ce5c47d46f9e01343fff00da034d
parent2a31e4bd9ad255ee40809b5c798c4b1c2b09703b
netfilter: nfnetlink_cttimeout: fetch timeouts for udplite and gre, too

syzbot was able to trigger the WARN in cttimeout_default_get() by
passing UDPLITE as l4protocol.  Alias UDPLITE to UDP, both use
same timeout values.

Furthermore, also fetch GRE timeouts.  GRE is a bit more complicated,
as it still can be a module and its netns_proto_gre struct layout isn't
visible outside of the gre module. Can't move timeouts around, it
appears conntrack sysctl unregister assumes net_generic() returns
nf_proto_net, so we get crash. Expose layout of netns_proto_gre instead.

A followup nf-next patch could make gre tracker be built-in as well
if needed, its not that large.

Last, make the WARN() mention the missing protocol value in case
anything else is missing.

Reported-by: syzbot+2fae8fa157dd92618cae@syzkaller.appspotmail.com
Fixes: 8866df9264a3 ("netfilter: nfnetlink_cttimeout: pass default timeout policy to obj_to_nlattr")
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
include/linux/netfilter/nf_conntrack_proto_gre.h
net/netfilter/nf_conntrack_proto_gre.c
net/netfilter/nfnetlink_cttimeout.c