| From 1438f5d07b9a7afb15e1d0e26df04a6fd4e56a3c Mon Sep 17 00:00:00 2001 |
| From: Nicolas Dichtel <nicolas.dichtel@6wind.com> |
| Date: Wed, 5 Feb 2025 23:10:37 +0100 |
| Subject: rtnetlink: fix netns leak with rtnl_setlink() |
| |
| From: Nicolas Dichtel <nicolas.dichtel@6wind.com> |
| |
| commit 1438f5d07b9a7afb15e1d0e26df04a6fd4e56a3c upstream. |
| |
| A call to rtnl_nets_destroy() is needed to release references taken on |
| netns put in rtnl_nets. |
| |
| CC: stable@vger.kernel.org |
| Fixes: 636af13f213b ("rtnetlink: Register rtnl_dellink() and rtnl_setlink() with RTNL_FLAG_DOIT_PERNET_WIP.") |
| Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> |
| Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com> |
| Link: https://patch.msgid.link/20250205221037.2474426-1-nicolas.dichtel@6wind.com |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| net/core/rtnetlink.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/net/core/rtnetlink.c |
| +++ b/net/core/rtnetlink.c |
| @@ -3423,6 +3423,7 @@ static int rtnl_setlink(struct sk_buff * |
| err = -ENODEV; |
| |
| rtnl_nets_unlock(&rtnl_nets); |
| + rtnl_nets_destroy(&rtnl_nets); |
| errout: |
| return err; |
| } |