Re: [PATCH net] net: sched: fix possible refcount leak in tc_chain_tmplt_add()

From: Hangyu Hua
Date: Tue Jun 06 2023 - 22:20:41 EST


On 6/6/2023 16:53, Larysa Zaremba wrote:
On Mon, Jun 05, 2023 at 03:01:58PM +0800, Hangyu Hua wrote:
try_module_get can be called in tcf_proto_lookup_ops. So if ops don't
implement the corresponding function we should call module_put to drop
the refcount.


Code seems reasonable. But commit message is pretty hard to understand.
Please, replace "corresponding" with "required".
Also change the first sentence, do not use "can". From what I see, successful
execution of tcf_proto_lookup_ops always means we now hold reference to module.

CC me in v2, I'll give you Reviewed-by.


I apologize for my incorrect English expression. I will send a v2 later.

Thanks,
Hangyu

Fixes: 9f407f1768d3 ("net: sched: introduce chain templates")
Signed-off-by: Hangyu Hua <hbh25y@xxxxxxxxx>
---
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