drm/radeon/r600_cs: Fix possible int overflow in r600_packet3_check()
[ Upstream commit a1e2da6a5072f8abe5b0feaa91a5bcd9dc544a04 ] It is possible, although unlikely, that an integer overflow will occur when the result of radeon_get_ib_value() is shifted to the left. Avoid it by casting one of the operands to larger data type (u64). Found by Linux Verification Center (linuxtesting.org) with static analysis tool SVACE. Signed-off-by: Igor Artemiev <Igor.A.Artemiev@mcst.ru> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
4c245d6d19
commit
cb8ae56d73
1 changed files with 1 additions and 1 deletions
|
|
@ -2104,7 +2104,7 @@ static int r600_packet3_check(struct radeon_cs_parser *p,
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
offset = radeon_get_ib_value(p, idx+1) << 8;
|
offset = (u64)radeon_get_ib_value(p, idx+1) << 8;
|
||||||
if (offset != track->vgt_strmout_bo_offset[idx_value]) {
|
if (offset != track->vgt_strmout_bo_offset[idx_value]) {
|
||||||
DRM_ERROR("bad STRMOUT_BASE_UPDATE, bo offset does not match: 0x%llx, 0x%x\n",
|
DRM_ERROR("bad STRMOUT_BASE_UPDATE, bo offset does not match: 0x%llx, 0x%x\n",
|
||||||
offset, track->vgt_strmout_bo_offset[idx_value]);
|
offset, track->vgt_strmout_bo_offset[idx_value]);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue