mirror of
https://github.com/torvalds/linux.git
synced 2026-07-29 02:31:27 +02:00
drm/amd/pm: Use strscpy in profile mode parsing
Use strscpy to copy the buffer which makes it explicit that a valid NULL terminated string gets copied. Also, make it explicit that the source buffer can be copied safely to the temporary buffer by checking against its size. Signed-off-by: Lijo Lazar <lijo.lazar@amd.com> Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
961323c26a
commit
408b17765b
|
|
@ -1393,7 +1393,6 @@ static ssize_t amdgpu_set_pp_power_profile_mode(struct device *dev,
|
|||
long parameter[64];
|
||||
char *sub_str, buf_cpy[128];
|
||||
char *tmp_str;
|
||||
uint32_t i = 0;
|
||||
char tmp[2];
|
||||
long int profile_mode = 0;
|
||||
const char delimiter[3] = {' ', '\n', '\0'};
|
||||
|
|
@ -1402,18 +1401,18 @@ static ssize_t amdgpu_set_pp_power_profile_mode(struct device *dev,
|
|||
if (count == 0 || sysfs_streq(buf, ""))
|
||||
return -EINVAL;
|
||||
|
||||
tmp[0] = *(buf);
|
||||
tmp[0] = *(buf++);
|
||||
tmp[1] = '\0';
|
||||
ret = kstrtol(tmp, 0, &profile_mode);
|
||||
if (ret)
|
||||
return -EINVAL;
|
||||
|
||||
if (profile_mode == PP_SMC_POWER_PROFILE_CUSTOM) {
|
||||
if (count < 2 || count > 127)
|
||||
if (count < 2 || count > sizeof(buf_cpy))
|
||||
return -EINVAL;
|
||||
while (isspace(*++buf))
|
||||
i++;
|
||||
memcpy(buf_cpy, buf, count-i);
|
||||
while (isspace(*buf))
|
||||
buf++;
|
||||
strscpy(buf_cpy, buf, sizeof(buf_cpy));
|
||||
tmp_str = buf_cpy;
|
||||
while ((sub_str = strsep(&tmp_str, delimiter)) != NULL) {
|
||||
if (strlen(sub_str) == 0)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user