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.
(AFAICT it is ok in mainline and 5.10).
Best regards, Pavel
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.
linux-stable-mirror@lists.linaro.org