| From 4c292091bb4483d6d453c81f1fb91b0feec5ee9b Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sat, 18 Sep 2021 17:04:10 +0800 |
| Subject: net: net_namespace: Fix undefined member in key_remove_domain() |
| |
| From: Yajun Deng <yajun.deng@linux.dev> |
| |
| [ Upstream commit aed0826b0cf2e488900ab92193893e803d65c070 ] |
| |
| The key_domain member in struct net only exists if we define CONFIG_KEYS. |
| So we should add the define when we used key_domain. |
| |
| Fixes: 9b242610514f ("keys: Network namespace domain tag") |
| Signed-off-by: Yajun Deng <yajun.deng@linux.dev> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| net/core/net_namespace.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c |
| index 9bf15512601bf..cd1d40195e461 100644 |
| --- a/net/core/net_namespace.c |
| +++ b/net/core/net_namespace.c |
| @@ -480,7 +480,9 @@ struct net *copy_net_ns(unsigned long flags, |
| |
| if (rv < 0) { |
| put_userns: |
| +#ifdef CONFIG_KEYS |
| key_remove_domain(net->key_domain); |
| +#endif |
| put_user_ns(user_ns); |
| net_drop_ns(net); |
| dec_ucounts: |
| @@ -612,7 +614,9 @@ static void cleanup_net(struct work_struct *work) |
| list_for_each_entry_safe(net, tmp, &net_exit_list, exit_list) { |
| list_del_init(&net->exit_list); |
| dec_net_namespaces(net->ucounts); |
| +#ifdef CONFIG_KEYS |
| key_remove_domain(net->key_domain); |
| +#endif |
| put_user_ns(net->user_ns); |
| net_drop_ns(net); |
| } |
| -- |
| 2.33.0 |
| |