drm/radeon: Prefer kcalloc over open coded arithmetic
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, refactor the code a bit to use the purpose specific kcalloc() function instead of the calculated size argument in the kzalloc() function. [1] https://www.kernel.org/doc/html/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments Signed-off-by: Len Baker <len.baker@gmx.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
e8ba4922a2
commit
67684fcbdd
|
@ -820,12 +820,12 @@ union fan_info {
|
|||
static int r600_parse_clk_voltage_dep_table(struct radeon_clock_voltage_dependency_table *radeon_table,
|
||||
ATOM_PPLIB_Clock_Voltage_Dependency_Table *atom_table)
|
||||
{
|
||||
u32 size = atom_table->ucNumEntries *
|
||||
sizeof(struct radeon_clock_voltage_dependency_entry);
|
||||
int i;
|
||||
ATOM_PPLIB_Clock_Voltage_Dependency_Record *entry;
|
||||
|
||||
radeon_table->entries = kzalloc(size, GFP_KERNEL);
|
||||
radeon_table->entries = kcalloc(atom_table->ucNumEntries,
|
||||
sizeof(struct radeon_clock_voltage_dependency_entry),
|
||||
GFP_KERNEL);
|
||||
if (!radeon_table->entries)
|
||||
return -ENOMEM;
|
||||
|
||||
|
|
Loading…
Reference in New Issue