Message ID | 20230607022301.6405-1-hbh25y@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 44f8baaf230c655c249467ca415b570deca8df77 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net,v2] net: sched: fix possible refcount leak in tc_chain_tmplt_add() | expand |
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 <larysa.zaremba@intel.com> > Signed-off-by: Hangyu Hua <hbh25y@gmail.com> > --- > > 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 >
Hello: This patch was applied to netdev/net.git (main) by David S. Miller <davem@davemloft.net>: 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 <hbh25y@gmail.com> > > [...] 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!
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; }
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 <hbh25y@gmail.com> --- v2: fix the patch description. net/sched/cls_api.c | 1 + 1 file changed, 1 insertion(+)