* [PATCH 1/1] IPVS: Fix use-after-free issue in ip_vs_unbind_app()
@ 2025-09-08 6:54 Slavin Liu
2025-09-09 15:15 ` Julian Anastasov
2025-09-09 21:21 ` [PATCH v2] ipvs: Check ipvs->enable before unregistration in __ip_vs_ftp_exit() Slavin Liu
0 siblings, 2 replies; 8+ messages in thread
From: Slavin Liu @ 2025-09-08 6:54 UTC (permalink / raw)
To: Simon Horman, Julian Anastasov
Cc: Slavin Liu, Pablo Neira Ayuso, Jozsef Kadlecsik, Florian Westphal,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
lvs-devel, netdev, netfilter-devel, coreteam, linux-kernel
When exiting a network namespace, in cleanup_net()->ops_undo_list(),
ip_vs_ftp_ops->exit() is called before ip_vs_core_ops->exit_batch().
The ip_vs_app ip_vs_ftp and its incarnations will be freed by unregister_ip_vs_app().
However, there could still be connections bound to ip_vs_ftp's incarnation.
cp->app points to the free'd incarnation, which will be accessed later by
__ip_vs_cleanup_batch()->ip_vs_conn_net_cleanup()->ip_vs_conn_flush()->ip_vs_conn_del()->
ip_vs_conn_expire()->ip_vs_unbind_app(), causing a uaf. This vulnarability can
lead to a local privilege escalation.
Reproduction steps:
1. create a ipvs service on (127.0.0.1:21)
2. create a ipvs destination on the service, to (127.0.0.1:<any>)
3. send a tcp packet to (127.0.0.1:21)
4. exit the network namespace
I think the fix should flush all connection to ftp before unregistration.
The simpler fix is to delete ip_vs_ftp_ops->exit, and defer the unregistration
of ip_vs_ftp to ip_vs_app_net_cleanup(), which will unregister all ip_vs_app.
It's after ip_vs_conn_net_cleanup() so there is no uaf issue. This patch
seems to solve the issue but has't been fully tested yet, and is also not graceful.
Signed-off-by: Slavin Liu <slavin452@gmail.com>
---
net/netfilter/ipvs/ip_vs_ftp.c | 13 -------------
1 file changed, 13 deletions(-)
diff --git a/net/netfilter/ipvs/ip_vs_ftp.c b/net/netfilter/ipvs/ip_vs_ftp.c
index d8a284999544..68def1106681 100644
--- a/net/netfilter/ipvs/ip_vs_ftp.c
+++ b/net/netfilter/ipvs/ip_vs_ftp.c
@@ -598,22 +598,9 @@ static int __net_init __ip_vs_ftp_init(struct net *net)
unregister_ip_vs_app(ipvs, &ip_vs_ftp);
return ret;
}
-/*
- * netns exit
- */
-static void __ip_vs_ftp_exit(struct net *net)
-{
- struct netns_ipvs *ipvs = net_ipvs(net);
-
- if (!ipvs)
- return;
-
- unregister_ip_vs_app(ipvs, &ip_vs_ftp);
-}
static struct pernet_operations ip_vs_ftp_ops = {
.init = __ip_vs_ftp_init,
- .exit = __ip_vs_ftp_exit,
};
static int __init ip_vs_ftp_init(void)
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH 1/1] IPVS: Fix use-after-free issue in ip_vs_unbind_app()
2025-09-08 6:54 [PATCH 1/1] IPVS: Fix use-after-free issue in ip_vs_unbind_app() Slavin Liu
@ 2025-09-09 15:15 ` Julian Anastasov
2025-09-09 21:21 ` [PATCH v2] ipvs: Check ipvs->enable before unregistration in __ip_vs_ftp_exit() Slavin Liu
1 sibling, 0 replies; 8+ messages in thread
From: Julian Anastasov @ 2025-09-09 15:15 UTC (permalink / raw)
To: Slavin Liu
Cc: Simon Horman, Pablo Neira Ayuso, Jozsef Kadlecsik,
Florian Westphal, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, lvs-devel, netdev, netfilter-devel, coreteam,
linux-kernel
Hello,
On Mon, 8 Sep 2025, Slavin Liu wrote:
> When exiting a network namespace, in cleanup_net()->ops_undo_list(),
> ip_vs_ftp_ops->exit() is called before ip_vs_core_ops->exit_batch().
> The ip_vs_app ip_vs_ftp and its incarnations will be freed by unregister_ip_vs_app().
> However, there could still be connections bound to ip_vs_ftp's incarnation.
> cp->app points to the free'd incarnation, which will be accessed later by
> __ip_vs_cleanup_batch()->ip_vs_conn_net_cleanup()->ip_vs_conn_flush()->ip_vs_conn_del()->
> ip_vs_conn_expire()->ip_vs_unbind_app(), causing a uaf. This vulnarability can
> lead to a local privilege escalation.
>
> Reproduction steps:
> 1. create a ipvs service on (127.0.0.1:21)
> 2. create a ipvs destination on the service, to (127.0.0.1:<any>)
> 3. send a tcp packet to (127.0.0.1:21)
> 4. exit the network namespace
>
> I think the fix should flush all connection to ftp before unregistration.
> The simpler fix is to delete ip_vs_ftp_ops->exit, and defer the unregistration
> of ip_vs_ftp to ip_vs_app_net_cleanup(), which will unregister all ip_vs_app.
> It's after ip_vs_conn_net_cleanup() so there is no uaf issue. This patch
> seems to solve the issue but has't been fully tested yet, and is also not graceful.
>
> Signed-off-by: Slavin Liu <slavin452@gmail.com>
> ---
> net/netfilter/ipvs/ip_vs_ftp.c | 13 -------------
> 1 file changed, 13 deletions(-)
>
> diff --git a/net/netfilter/ipvs/ip_vs_ftp.c b/net/netfilter/ipvs/ip_vs_ftp.c
> index d8a284999544..68def1106681 100644
> --- a/net/netfilter/ipvs/ip_vs_ftp.c
> +++ b/net/netfilter/ipvs/ip_vs_ftp.c
> @@ -598,22 +598,9 @@ static int __net_init __ip_vs_ftp_init(struct net *net)
> unregister_ip_vs_app(ipvs, &ip_vs_ftp);
> return ret;
> }
> -/*
> - * netns exit
> - */
> -static void __ip_vs_ftp_exit(struct net *net)
> -{
> - struct netns_ipvs *ipvs = net_ipvs(net);
> -
> - if (!ipvs)
What if we change this 'if' check to:
if (!ipvs || !ipvs->enable)
If netns exits, the cleanup order is:
1. exit handlers for pernet device (&ipvs_core_dev_ops) where
ipvs->enable is set to 0
2. exit handlers for ip_vs_ftp_ops (as last pernet subsys)
By checking for ipvs->enable, we should not call
unregister_ip_vs_app() in __ip_vs_ftp_exit() because
there can be existing conns with valid cp->app
3. exit handlers for pernet subsys (&ipvs_core_ops) where
ip_vs_app_net_cleanup() unregisters all apps for netns.
Here the apps will be freed after all conns are gone
Why we should keep the ftp pernet subsys: because when
there are no conns using the app, the module can be removed and
it must unregister its app from all netns where ipvs->enable will
be 1.
But note that we have a pending patch that changes
the access to ipvs->enable to use READ_ONCE/WRITE_ONCE:
https://archive.linuxvirtualserver.org/html/lvs-devel/2025-09/msg00000.html
> - return;
> -
> - unregister_ip_vs_app(ipvs, &ip_vs_ftp);
> -}
>
> static struct pernet_operations ip_vs_ftp_ops = {
> .init = __ip_vs_ftp_init,
> - .exit = __ip_vs_ftp_exit,
> };
>
> static int __init ip_vs_ftp_init(void)
> --
> 2.34.1
Regards
--
Julian Anastasov <ja@ssi.bg>
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH v2] ipvs: Check ipvs->enable before unregistration in __ip_vs_ftp_exit()
2025-09-08 6:54 [PATCH 1/1] IPVS: Fix use-after-free issue in ip_vs_unbind_app() Slavin Liu
2025-09-09 15:15 ` Julian Anastasov
@ 2025-09-09 21:21 ` Slavin Liu
2025-09-10 9:39 ` Julian Anastasov
2025-09-11 14:40 ` [RFC PATCH v3] ipvs: Defer ip_vs_ftp unregister during netns cleanup Slavin Liu
1 sibling, 2 replies; 8+ messages in thread
From: Slavin Liu @ 2025-09-09 21:21 UTC (permalink / raw)
To: Simon Horman, Julian Anastasov
Cc: Slavin Liu, Pablo Neira Ayuso, Jozsef Kadlecsik, Florian Westphal,
David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
lvs-devel, netdev, netfilter-devel, coreteam, linux-kernel
On netns cleanup path, before unregistration in __ip_vs_ftp_exit(),
there could still be existing conns with valid cp->app.
Suggested by Julian, this patch fixes this issue by checking ipvs->enable
to ensure the right order of cleanup:
1. Set ipvs->enable to 0 in ipvs_core_dev_ops->exit_batch()
2. Skip app unregistration in ip_vs_ftp_ops->exit() by
checking ipvs->enable
3. Flush all conns in ipvs_core_ops->exit_batch()
4. Unregister all apps in ipvs_core_ops->exit_batch()
Access ipvs->enable by READ_ONCE to avoid concurrency issue.
Suggested-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Slavin Liu <slavin452@gmail.com>
---
net/netfilter/ipvs/ip_vs_ftp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/netfilter/ipvs/ip_vs_ftp.c b/net/netfilter/ipvs/ip_vs_ftp.c
index d8a284999544..d3e2f7798bf3 100644
--- a/net/netfilter/ipvs/ip_vs_ftp.c
+++ b/net/netfilter/ipvs/ip_vs_ftp.c
@@ -605,7 +605,7 @@ static void __ip_vs_ftp_exit(struct net *net)
{
struct netns_ipvs *ipvs = net_ipvs(net);
- if (!ipvs)
+ if (!ipvs || !READ_ONCE(ipvs->enable))
return;
unregister_ip_vs_app(ipvs, &ip_vs_ftp);
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH v2] ipvs: Check ipvs->enable before unregistration in __ip_vs_ftp_exit()
2025-09-09 21:21 ` [PATCH v2] ipvs: Check ipvs->enable before unregistration in __ip_vs_ftp_exit() Slavin Liu
@ 2025-09-10 9:39 ` Julian Anastasov
2025-09-11 14:40 ` [RFC PATCH v3] ipvs: Defer ip_vs_ftp unregister during netns cleanup Slavin Liu
1 sibling, 0 replies; 8+ messages in thread
From: Julian Anastasov @ 2025-09-10 9:39 UTC (permalink / raw)
To: Slavin Liu
Cc: Simon Horman, Pablo Neira Ayuso, Jozsef Kadlecsik,
Florian Westphal, David S . Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, lvs-devel, netdev, netfilter-devel, coreteam,
linux-kernel
Hello,
On Wed, 10 Sep 2025, Slavin Liu wrote:
> On netns cleanup path, before unregistration in __ip_vs_ftp_exit(),
> there could still be existing conns with valid cp->app.
>
> Suggested by Julian, this patch fixes this issue by checking ipvs->enable
> to ensure the right order of cleanup:
> 1. Set ipvs->enable to 0 in ipvs_core_dev_ops->exit_batch()
> 2. Skip app unregistration in ip_vs_ftp_ops->exit() by
> checking ipvs->enable
> 3. Flush all conns in ipvs_core_ops->exit_batch()
> 4. Unregister all apps in ipvs_core_ops->exit_batch()
>
> Access ipvs->enable by READ_ONCE to avoid concurrency issue.
>
> Suggested-by: Julian Anastasov <ja@ssi.bg>
> Signed-off-by: Slavin Liu <slavin452@gmail.com>
> ---
> net/netfilter/ipvs/ip_vs_ftp.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/netfilter/ipvs/ip_vs_ftp.c b/net/netfilter/ipvs/ip_vs_ftp.c
> index d8a284999544..d3e2f7798bf3 100644
> --- a/net/netfilter/ipvs/ip_vs_ftp.c
> +++ b/net/netfilter/ipvs/ip_vs_ftp.c
> @@ -605,7 +605,7 @@ static void __ip_vs_ftp_exit(struct net *net)
> {
> struct netns_ipvs *ipvs = net_ipvs(net);
>
> - if (!ipvs)
> + if (!ipvs || !READ_ONCE(ipvs->enable))
Ops, I forgot that ipvs->enable is set later when
service is added. May be we have to add some new global flag
for this in ip_vs_ftp.c:
static bool removing;
We will set it in ip_vs_ftp_exit() before calling
unregister_pernet_subsys() and the above check will become:
if (!ipvs || !removing)
Also, we have to add Fixes tag, this looks the
one that starts to remove apps from netns exit handler:
Fixes: 61b1ab4583e2 ("IPVS: netns, add basic init per netns.")
Regards
--
Julian Anastasov <ja@ssi.bg>
^ permalink raw reply [flat|nested] 8+ messages in thread* [RFC PATCH v3] ipvs: Defer ip_vs_ftp unregister during netns cleanup
2025-09-09 21:21 ` [PATCH v2] ipvs: Check ipvs->enable before unregistration in __ip_vs_ftp_exit() Slavin Liu
2025-09-10 9:39 ` Julian Anastasov
@ 2025-09-11 14:40 ` Slavin Liu
2025-09-11 17:57 ` [PATCH v4] " Slavin Liu
1 sibling, 1 reply; 8+ messages in thread
From: Slavin Liu @ 2025-09-11 14:40 UTC (permalink / raw)
To: Simon Horman, Julian Anastasov
Cc: Slavin Liu, Pablo Neira Ayuso, Jozsef Kadlecsik, Florian Westphal,
David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
lvs-devel, netdev, netfilter-devel, coreteam, linux-kernel
On the netns cleanup path, __ip_vs_ftp_exit() may unregister ip_vs_ftp
before connections with valid cp->app pointers are flushed, leading to a
use-after-free.
Fix this by introducing a global `module_removing` flag, set to true in
ip_vs_ftp_exit() before unregistering the pernet subsystem. In
__ip_vs_ftp_exit(), skip ip_vs_ftp unregister if called during netns
cleanup (when module_removing is false) and defer it to
__ip_vs_cleanup_batch(), which unregisters all apps after all connections
are flushed. If called during module exit, unregister ip_vs_ftp
immediately.
Fixes: 61b1ab4583e2 ("IPVS: netns, add basic init per netns.")
Suggested-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Slavin Liu <slavin452@gmail.com>
---
net/netfilter/ipvs/ip_vs_ftp.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/net/netfilter/ipvs/ip_vs_ftp.c b/net/netfilter/ipvs/ip_vs_ftp.c
index d8a284999544..4db58c42ff9a 100644
--- a/net/netfilter/ipvs/ip_vs_ftp.c
+++ b/net/netfilter/ipvs/ip_vs_ftp.c
@@ -53,6 +53,7 @@ enum {
IP_VS_FTP_EPSV,
};
+static bool module_exiting;
/*
* List of ports (up to IP_VS_APP_MAX_PORTS) to be handled by helper
* First port is set to the default port.
@@ -605,7 +606,7 @@ static void __ip_vs_ftp_exit(struct net *net)
{
struct netns_ipvs *ipvs = net_ipvs(net);
- if (!ipvs)
+ if (!ipvs || !module_exiting)
return;
unregister_ip_vs_app(ipvs, &ip_vs_ftp);
@@ -627,7 +628,9 @@ static int __init ip_vs_ftp_init(void)
*/
static void __exit ip_vs_ftp_exit(void)
{
+ module_exiting = true;
unregister_pernet_subsys(&ip_vs_ftp_ops);
+ module_exiting = false;
/* rcu_barrier() is called by netns */
}
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH v4] ipvs: Defer ip_vs_ftp unregister during netns cleanup
2025-09-11 14:40 ` [RFC PATCH v3] ipvs: Defer ip_vs_ftp unregister during netns cleanup Slavin Liu
@ 2025-09-11 17:57 ` Slavin Liu
2025-09-13 17:23 ` Julian Anastasov
0 siblings, 1 reply; 8+ messages in thread
From: Slavin Liu @ 2025-09-11 17:57 UTC (permalink / raw)
To: Simon Horman, Julian Anastasov
Cc: Slavin Liu, Pablo Neira Ayuso, Jozsef Kadlecsik, Florian Westphal,
David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
lvs-devel, netdev, netfilter-devel, coreteam, linux-kernel
On the netns cleanup path, __ip_vs_ftp_exit() may unregister ip_vs_ftp
before connections with valid cp->app pointers are flushed, leading to a
use-after-free.
Fix this by introducing a global `exiting_module` flag, set to true in
ip_vs_ftp_exit() before unregistering the pernet subsystem. In
__ip_vs_ftp_exit(), skip ip_vs_ftp unregister if called during netns
cleanup (when module_removing is false) and defer it to
__ip_vs_cleanup_batch(), which unregisters all apps after all connections
are flushed. If called during module exit, unregister ip_vs_ftp
immediately.
Fixes: 61b1ab4583e2 ("IPVS: netns, add basic init per netns.")
Suggested-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Slavin Liu <slavin452@gmail.com>
---
net/netfilter/ipvs/ip_vs_ftp.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/net/netfilter/ipvs/ip_vs_ftp.c b/net/netfilter/ipvs/ip_vs_ftp.c
index d8a284999544..206c6700e200 100644
--- a/net/netfilter/ipvs/ip_vs_ftp.c
+++ b/net/netfilter/ipvs/ip_vs_ftp.c
@@ -53,6 +53,7 @@ enum {
IP_VS_FTP_EPSV,
};
+static bool exiting_module;
/*
* List of ports (up to IP_VS_APP_MAX_PORTS) to be handled by helper
* First port is set to the default port.
@@ -605,7 +606,7 @@ static void __ip_vs_ftp_exit(struct net *net)
{
struct netns_ipvs *ipvs = net_ipvs(net);
- if (!ipvs)
+ if (!ipvs || !exiting_module)
return;
unregister_ip_vs_app(ipvs, &ip_vs_ftp);
@@ -627,6 +628,7 @@ static int __init ip_vs_ftp_init(void)
*/
static void __exit ip_vs_ftp_exit(void)
{
+ exiting_module = true;
unregister_pernet_subsys(&ip_vs_ftp_ops);
/* rcu_barrier() is called by netns */
}
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH v4] ipvs: Defer ip_vs_ftp unregister during netns cleanup
2025-09-11 17:57 ` [PATCH v4] " Slavin Liu
@ 2025-09-13 17:23 ` Julian Anastasov
2025-09-13 21:07 ` Florian Westphal
0 siblings, 1 reply; 8+ messages in thread
From: Julian Anastasov @ 2025-09-13 17:23 UTC (permalink / raw)
To: Slavin Liu
Cc: Simon Horman, Pablo Neira Ayuso, Jozsef Kadlecsik,
Florian Westphal, David S . Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, lvs-devel, netdev, netfilter-devel, coreteam,
linux-kernel
Hello,
On Fri, 12 Sep 2025, Slavin Liu wrote:
> On the netns cleanup path, __ip_vs_ftp_exit() may unregister ip_vs_ftp
> before connections with valid cp->app pointers are flushed, leading to a
> use-after-free.
>
> Fix this by introducing a global `exiting_module` flag, set to true in
> ip_vs_ftp_exit() before unregistering the pernet subsystem. In
> __ip_vs_ftp_exit(), skip ip_vs_ftp unregister if called during netns
> cleanup (when module_removing is false) and defer it to
Pablo, can you change here module_removing to exiting_module
before applying?
> __ip_vs_cleanup_batch(), which unregisters all apps after all connections
> are flushed. If called during module exit, unregister ip_vs_ftp
> immediately.
>
> Fixes: 61b1ab4583e2 ("IPVS: netns, add basic init per netns.")
> Suggested-by: Julian Anastasov <ja@ssi.bg>
> Signed-off-by: Slavin Liu <slavin452@gmail.com>
Looks good to me for the nf tree after above text is
changed, thanks!
Signed-off-by: Julian Anastasov <ja@ssi.bg>
> ---
> net/netfilter/ipvs/ip_vs_ftp.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/net/netfilter/ipvs/ip_vs_ftp.c b/net/netfilter/ipvs/ip_vs_ftp.c
> index d8a284999544..206c6700e200 100644
> --- a/net/netfilter/ipvs/ip_vs_ftp.c
> +++ b/net/netfilter/ipvs/ip_vs_ftp.c
> @@ -53,6 +53,7 @@ enum {
> IP_VS_FTP_EPSV,
> };
>
> +static bool exiting_module;
> /*
> * List of ports (up to IP_VS_APP_MAX_PORTS) to be handled by helper
> * First port is set to the default port.
> @@ -605,7 +606,7 @@ static void __ip_vs_ftp_exit(struct net *net)
> {
> struct netns_ipvs *ipvs = net_ipvs(net);
>
> - if (!ipvs)
> + if (!ipvs || !exiting_module)
> return;
>
> unregister_ip_vs_app(ipvs, &ip_vs_ftp);
> @@ -627,6 +628,7 @@ static int __init ip_vs_ftp_init(void)
> */
> static void __exit ip_vs_ftp_exit(void)
> {
> + exiting_module = true;
> unregister_pernet_subsys(&ip_vs_ftp_ops);
> /* rcu_barrier() is called by netns */
> }
> --
> 2.34.1
Regards
--
Julian Anastasov <ja@ssi.bg>
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH v4] ipvs: Defer ip_vs_ftp unregister during netns cleanup
2025-09-13 17:23 ` Julian Anastasov
@ 2025-09-13 21:07 ` Florian Westphal
0 siblings, 0 replies; 8+ messages in thread
From: Florian Westphal @ 2025-09-13 21:07 UTC (permalink / raw)
To: Julian Anastasov
Cc: Slavin Liu, Simon Horman, Pablo Neira Ayuso, Jozsef Kadlecsik,
David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
lvs-devel, netdev, netfilter-devel, coreteam, linux-kernel
Julian Anastasov <ja@ssi.bg> wrote:
> > Fixes: 61b1ab4583e2 ("IPVS: netns, add basic init per netns.")
> > Suggested-by: Julian Anastasov <ja@ssi.bg>
> > Signed-off-by: Slavin Liu <slavin452@gmail.com>
>
> Looks good to me for the nf tree after above text is
> changed, thanks!
Thaks Julian for reviewing, i pushed it to nf:testing.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-09-13 21:07 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-08 6:54 [PATCH 1/1] IPVS: Fix use-after-free issue in ip_vs_unbind_app() Slavin Liu
2025-09-09 15:15 ` Julian Anastasov
2025-09-09 21:21 ` [PATCH v2] ipvs: Check ipvs->enable before unregistration in __ip_vs_ftp_exit() Slavin Liu
2025-09-10 9:39 ` Julian Anastasov
2025-09-11 14:40 ` [RFC PATCH v3] ipvs: Defer ip_vs_ftp unregister during netns cleanup Slavin Liu
2025-09-11 17:57 ` [PATCH v4] " Slavin Liu
2025-09-13 17:23 ` Julian Anastasov
2025-09-13 21:07 ` Florian Westphal
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).