Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx> On Wed, Jul 26, 2023 at 10:51 AM Srinivasan Shanmugam <srinivasan.shanmugam@xxxxxxx> wrote: > > 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@xxxxxxx> > Cc: Christian König <christian.koenig@xxxxxxx> > Cc: Alex Deucher <alexander.deucher@xxxxxxx> > Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam@xxxxxxx> > --- > drivers/gpu/drm/radeon/radeon_combios.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/radeon_combios.c b/drivers/gpu/drm/radeon/radeon_combios.c > index 783a6b8802d5..795c3667f6d6 100644 > --- a/drivers/gpu/drm/radeon/radeon_combios.c > +++ b/drivers/gpu/drm/radeon/radeon_combios.c > @@ -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); > -- > 2.25.1 >