2023-06-07 02:59:46

by Hangyu Hua

[permalink] [raw]
Subject: [PATCH net v2] net: sched: fix possible refcount leak in tc_chain_tmplt_add()

try_module_get will be called in tcf_proto_lookup_ops. So module_put needs
to be called to drop the refcount if ops don't implement the required
function.

Fixes: 9f407f1768d3 ("net: sched: introduce chain templates")
Signed-off-by: Hangyu Hua <[email protected]>
---

v2: fix the patch description.

net/sched/cls_api.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
index 2621550bfddc..92bfb892e638 100644
--- a/net/sched/cls_api.c
+++ b/net/sched/cls_api.c
@@ -2952,6 +2952,7 @@ static int tc_chain_tmplt_add(struct tcf_chain *chain, struct net *net,
return PTR_ERR(ops);
if (!ops->tmplt_create || !ops->tmplt_destroy || !ops->tmplt_dump) {
NL_SET_ERR_MSG(extack, "Chain templates are not supported with specified classifier");
+ module_put(ops->owner);
return -EOPNOTSUPP;
}

--
2.34.1



2023-06-07 07:23:54

by Larysa Zaremba

[permalink] [raw]
Subject: Re: [PATCH net v2] net: sched: fix possible refcount leak in tc_chain_tmplt_add()

On Wed, Jun 07, 2023 at 10:23:01AM +0800, Hangyu Hua wrote:
> try_module_get will be called in tcf_proto_lookup_ops. So module_put needs
> to be called to drop the refcount if ops don't implement the required
> function.
>
> Fixes: 9f407f1768d3 ("net: sched: introduce chain templates")

Reviewed-by: Larysa Zaremba <[email protected]>

> Signed-off-by: Hangyu Hua <[email protected]>
> ---
>
> v2: fix the patch description.
>
> net/sched/cls_api.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
> index 2621550bfddc..92bfb892e638 100644
> --- a/net/sched/cls_api.c
> +++ b/net/sched/cls_api.c
> @@ -2952,6 +2952,7 @@ static int tc_chain_tmplt_add(struct tcf_chain *chain, struct net *net,
> return PTR_ERR(ops);
> if (!ops->tmplt_create || !ops->tmplt_destroy || !ops->tmplt_dump) {
> NL_SET_ERR_MSG(extack, "Chain templates are not supported with specified classifier");
> + module_put(ops->owner);
> return -EOPNOTSUPP;
> }
>
> --
> 2.34.1
>

2023-06-07 12:09:12

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH net v2] net: sched: fix possible refcount leak in tc_chain_tmplt_add()

Hello:

This patch was applied to netdev/net.git (main)
by David S. Miller <[email protected]>:

On Wed, 7 Jun 2023 10:23:01 +0800 you wrote:
> try_module_get will be called in tcf_proto_lookup_ops. So module_put needs
> to be called to drop the refcount if ops don't implement the required
> function.
>
> Fixes: 9f407f1768d3 ("net: sched: introduce chain templates")
> Signed-off-by: Hangyu Hua <[email protected]>
>
> [...]

Here is the summary with links:
- [net,v2] net: sched: fix possible refcount leak in tc_chain_tmplt_add()
https://git.kernel.org/netdev/net/c/44f8baaf230c

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html