mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-03-14 19:55:40 -04:00
drm/radeon: Prefer strscpy over strlcpy in 'radeon_combios_get_power_modes'
strlcpy() reads the entire source buffer first. This read may exceed the destination size limit. This is both inefficient and can lead to linear read overflows if a source string is not NUL-terminated. The safe replacement is strscpy() [1]. cleanup to remove the strlcpy() function entirely from the kernel [2]. [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#strlcpy [2] https://github.com/KSPP/linux/issues/89 Fixes the following: WARNING: Prefer strscpy over strlcpy + strlcpy(info.type, name, sizeof(info.type)); WARNING: Prefer strscpy over strlcpy + strlcpy(info.type, name, sizeof(info.type)); Cc: Guchun Chen <guchun.chen@amd.com> Cc: Christian König <christian.koenig@amd.com> Cc: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
6cf20211fc
commit
9eec1fc150
@@ -2702,7 +2702,7 @@ void radeon_combios_get_power_modes(struct radeon_device *rdev)
|
||||
struct i2c_board_info info = { };
|
||||
const char *name = thermal_controller_names[thermal_controller];
|
||||
info.addr = i2c_addr >> 1;
|
||||
strlcpy(info.type, name, sizeof(info.type));
|
||||
strscpy(info.type, name, sizeof(info.type));
|
||||
i2c_new_client_device(&rdev->pm.i2c_bus->adapter, &info);
|
||||
}
|
||||
}
|
||||
@@ -2719,7 +2719,7 @@ void radeon_combios_get_power_modes(struct radeon_device *rdev)
|
||||
struct i2c_board_info info = { };
|
||||
const char *name = "f75375";
|
||||
info.addr = 0x28;
|
||||
strlcpy(info.type, name, sizeof(info.type));
|
||||
strscpy(info.type, name, sizeof(info.type));
|
||||
i2c_new_client_device(&rdev->pm.i2c_bus->adapter, &info);
|
||||
DRM_INFO("Possible %s thermal controller at 0x%02x\n",
|
||||
name, info.addr);
|
||||
|
||||
Reference in New Issue
Block a user