mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 12:35:52 +02:00
ipv4: free net->ipv4.sysctl_local_reserved_ports after unregister_net_sysctl_table()
ipv4_sysctl_exit_net() is currently freeing net->ipv4.sysctl_local_reserved_ports
too soon.
Only after unregister_net_sysctl_table() we can be sure no threads can possibly
use the sysctls, including /proc/sys/net/ipv4/ip_local_reserved_ports.
Fixes: 122ff243f5 ("ipv4: make ip_local_reserved_ports per netns")
Reported-by: Ji'an Zhou <eilaimemedsnaimel@gmail.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Cong Wang <xiyou.wangcong@gmail.com>
Reviewed-by: Jason Xing <kerneljasonxing@gmail.com>
Reviewed-by: Jiayuan Chen <jiayuan.chen@linux.dev>
Link: https://patch.msgid.link/20260521122147.3584624-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
4157501b9a
commit
87a1e0fe77
|
|
@ -1705,10 +1705,10 @@ static __net_exit void ipv4_sysctl_exit_net(struct net *net)
|
|||
{
|
||||
const struct ctl_table *table;
|
||||
|
||||
kfree(net->ipv4.sysctl_local_reserved_ports);
|
||||
table = net->ipv4.ipv4_hdr->ctl_table_arg;
|
||||
unregister_net_sysctl_table(net->ipv4.ipv4_hdr);
|
||||
kfree(table);
|
||||
kfree(net->ipv4.sysctl_local_reserved_ports);
|
||||
}
|
||||
|
||||
static __net_initdata struct pernet_operations ipv4_sysctl_ops = {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user