mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 04:34:03 +02:00
drm/amdgpu: add buf length check
add buf length check before using it to access data Signed-off-by: Gangliang Xie <ganglxie@amd.com> Reviewed-by: Tao Zhou <tao.zhou1@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
296ebc46de
commit
473f99e4a2
|
|
@ -166,7 +166,8 @@ static ssize_t ta_if_load_debugfs_write(struct file *fp, const char *buf, size_t
|
|||
if (ret)
|
||||
return -EFAULT;
|
||||
|
||||
if (ta_bin_len > PSP_1_MEG)
|
||||
if (ta_bin_len < sizeof(struct common_firmware_header) ||
|
||||
ta_bin_len > PSP_1_MEG)
|
||||
return -EINVAL;
|
||||
|
||||
copy_pos += sizeof(uint32_t);
|
||||
|
|
@ -321,6 +322,8 @@ static ssize_t ta_if_invoke_debugfs_write(struct file *fp, const char *buf, size
|
|||
ret = copy_from_user((void *)&shared_buf_len, &buf[copy_pos], sizeof(uint32_t));
|
||||
if (ret)
|
||||
return -EFAULT;
|
||||
if (!shared_buf_len || shared_buf_len > PSP_1_MEG)
|
||||
return -EINVAL;
|
||||
copy_pos += sizeof(uint32_t);
|
||||
|
||||
shared_buf = memdup_user(&buf[copy_pos], shared_buf_len);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user