Re: 4.19 queue: netfilter: conntrack: unregister ipv4 sockopts on error unwind

From: Sasha Levin
Date: Mon Jun 07 2021 - 19:48:44 EST


On Tue, Jun 08, 2021 at 12:38:54AM +0200, Pavel Machek wrote:
Hi!

That patch is wrong for 4.19. Wrong version is 066585c43 in stable
queue.

netfilter: conntrack: unregister ipv4 sockopts on error unwind

[ Upstream commit 22cbdbcfb61acc78d5fc21ebb13ccc0d7e29f793 ]

When ipv6 sockopt register fails, the ipv4 one needs to be
removed.

...

+++ b/net/netfilter/nf_conntrack_proto.c
@@ -962,7 +962,7 @@ int nf_conntrack_proto_init(void)
nf_unregister_sockopt(&so_getorigdst);
#if IS_ENABLED(CONFIG_IPV6)
cleanup_sockopt:
- nf_unregister_sockopt(&so_getorigdst6);
+ nf_unregister_sockopt(&so_getorigdst);
#endif
return ret;

Note the context. cleanup_sockopt2: needs to do
nf_unregister_sockopt(&so_getorigdst6);, otherwise we end up
unregistering the same pointer twice.

Good catch! I've dropped it from 4.19, the rest of the trees look ok.

--
Thanks,
Sasha