Messages in this thread | | | Date | Wed, 27 Oct 2021 07:39:45 -0700 | From | Guenter Roeck <> | Subject | Re: [PATCH] drm/amdgpu: fix out of bounds write |
| |
On Wed, Oct 13, 2021 at 04:04:13PM -0400, Thelford Williams wrote: > Size can be any value and is user controlled resulting in overwriting the > 40 byte array wr_buf with an arbitrary length of data from buf. > > Signed-off-by: Thelford Williams <tdwilliamsiv@gmail.com> > Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
The fix works, but unless I am missing something it is incomplete. parse_write_buffer_into_params() is called several times, and the size parameter is always wrong. This patch only fixes one of several instances of the problem.
Guenter
> --- > drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c > index 814f67d86a3c..9b3ad56607bb 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c > @@ -264,7 +264,7 @@ static ssize_t dp_link_settings_write(struct file *f, const char __user *buf, > if (!wr_buf) > return -ENOSPC; > > - if (parse_write_buffer_into_params(wr_buf, size, > + if (parse_write_buffer_into_params(wr_buf, wr_buf_size, > (long *)param, buf, > max_param_num, > ¶m_nums)) { > -- > 2.33.0
| |