Commit 030206ef authored by Bas Nieuwenhuizen's avatar Bas Nieuwenhuizen Committed by sanglipeng
Browse files

drm/amd/pm: Handle non-terminated overdrive commands.

stable inclusion
from stable-v5.10.202
commit dfa8e63ca527894061f877ac5176ba513a3974c2
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I9DZOS

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=dfa8e63ca527894061f877ac5176ba513a3974c2



--------------------------------

commit 08e9ebc75b5bcfec9d226f9e16bab2ab7b25a39a upstream.

The incoming strings might not be terminated by a newline
or a 0.

(found while testing a program that just wrote the string
 itself, causing a crash)

Cc: stable@vger.kernel.org
Fixes: e3933f26 ("drm/amd/pp: Add edit/commit/show OD clock/voltage support in sysfs")
Signed-off-by: default avatarBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarsanglipeng <sanglipeng1@jd.com>
parent fd14cb66
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -776,7 +776,7 @@ static ssize_t amdgpu_set_pp_od_clk_voltage(struct device *dev,
	if (amdgpu_in_reset(adev))
		return -EPERM;

	if (count > 127)
	if (count > 127 || count == 0)
		return -EINVAL;

	if (*buf == 's')
@@ -792,7 +792,8 @@ static ssize_t amdgpu_set_pp_od_clk_voltage(struct device *dev,
	else
		return -EINVAL;

	memcpy(buf_cpy, buf, count+1);
	memcpy(buf_cpy, buf, count);
	buf_cpy[count] = 0;

	tmp_str = buf_cpy;

@@ -807,6 +808,9 @@ static ssize_t amdgpu_set_pp_od_clk_voltage(struct device *dev,
			return -EINVAL;
		parameter_size++;

		if (!tmp_str)
			break;

		while (isspace(*tmp_str))
			tmp_str++;
	}