drivers/opp/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
From: Zhang Enpei <zhang.enpei@zte.com.cn>
Use kmemdup_array() to avoid multiplication and possible overflows.
Signed-off-by: Zhang Enpei <zhang.enpei@zte.com.cn>
---
drivers/opp/core.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/opp/core.c b/drivers/opp/core.c
index 72fbb6cadc23..d85e3371493f 100644
--- a/drivers/opp/core.c
+++ b/drivers/opp/core.c
@@ -2087,8 +2087,8 @@ static int _opp_set_supported_hw(struct opp_table *opp_table,
if (opp_table->supported_hw)
return 0;
- opp_table->supported_hw = kmemdup(versions, count * sizeof(*versions),
- GFP_KERNEL);
+ opp_table->supported_hw = kmemdup_array(versions, count, sizeof(*versions),
+ GFP_KERNEL);
if (!opp_table->supported_hw)
return -ENOMEM;
--
2.25.1
On 15-05-25, 20:13, zhang.enpei@zte.com.cn wrote: > From: Zhang Enpei <zhang.enpei@zte.com.cn> > > Use kmemdup_array() to avoid multiplication and possible overflows. > > Signed-off-by: Zhang Enpei <zhang.enpei@zte.com.cn> > --- > drivers/opp/core.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/opp/core.c b/drivers/opp/core.c > index 72fbb6cadc23..d85e3371493f 100644 > --- a/drivers/opp/core.c > +++ b/drivers/opp/core.c > @@ -2087,8 +2087,8 @@ static int _opp_set_supported_hw(struct opp_table *opp_table, > if (opp_table->supported_hw) > return 0; > > - opp_table->supported_hw = kmemdup(versions, count * sizeof(*versions), > - GFP_KERNEL); > + opp_table->supported_hw = kmemdup_array(versions, count, sizeof(*versions), > + GFP_KERNEL); > if (!opp_table->supported_hw) > return -ENOMEM; Applied. Thanks. -- viresh
© 2016 - 2025 Red Hat, Inc.