Hi Hu and Jonathan, On Sat, Jan 20, 2024 at 10:24:42PM +0800, Hu Haowen wrote: > > 在 2024/1/20 20:22, Erick Archer 写道: > > As noted in the "Deprecated Interfaces, Language Features, Attributes, > > and Conventions" documentation [1], size calculations (especially > > multiplication) should not be performed in memory allocator (or similar) > > function arguments due to the risk of them overflowing. This could lead > > to values wrapping around and a smaller allocation being made than the > > caller was expecting. Using those allocations could lead to linear > > overflows of heap memory and other misbehaviors. > > > > So, in the example code use the purpose specific kcalloc() function > > instead of the argument size * count in the kzalloc() function. > > > > Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1] > > Link: https://github.com/KSPP/linux/issues/162 > > Signed-off-by: Erick Archer <erick.archer@xxxxxxx> > > --- > > Documentation/translations/zh_CN/power/opp.rst | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/Documentation/translations/zh_CN/power/opp.rst b/Documentation/translations/zh_CN/power/opp.rst > > index 8d6e3f6f6202..7470fa2d4c43 100644 > > --- a/Documentation/translations/zh_CN/power/opp.rst > > +++ b/Documentation/translations/zh_CN/power/opp.rst > > @@ -274,7 +274,7 @@ dev_pm_opp_get_opp_count > > { > > /* 做一些事情 */ > > num_available = dev_pm_opp_get_opp_count(dev); > > - speeds = kzalloc(sizeof(u32) * num_available, GFP_KERNEL); > > + speeds = kcalloc(num_available, sizeof(u32), GFP_KERNEL); > > > If the translated version is modified, I think the original file should > follow as well at Documentation/power/opp.rst line 308: > > diff --git a/Documentation/power/opp.rst b/Documentation/power/opp.rst > index a7c03c470980..dca35018214a 100644 > --- a/Documentation/power/opp.rst > +++ b/Documentation/power/opp.rst > @@ -305,7 +305,7 @@ dev_pm_opp_get_opp_count > { > /* Do things */ > num_available = dev_pm_opp_get_opp_count(dev); > - speeds = kzalloc(sizeof(u32) * num_available, GFP_KERNEL); > + speeds = kcalloc(sizeof(u32) * num_available, GFP_KERNEL); > /* populate the table in increasing order */ > freq = 0; > while (!IS_ERR(opp = dev_pm_opp_find_freq_ceil(dev, &freq))) > { As you both suggested, this change should be made if the original file is changed. Therefore, before this patch I already sent another one [1] that made the proposed changes to the original file. [1] https://lore.kernel.org/linux-hardening/20240120120527.3866-1-erick.archer@xxxxxxx/ But if you prefer, I can send just one patch with the two changes. Best regards, Erick > > Thanks, > Hu Haowen > > > > /* 按升序填充表 */ > > freq = 0; > > while (!IS_ERR(opp = dev_pm_opp_find_freq_ceil(dev, &freq))) { > > -- > > 2.25.1 > > > > > >