drm/amd/display: Validate plane rects before use
[Why] Calculation of scaling ratio can result in a crash due to zero'd src or dst plane rects. [How] Validate that src and dst rects are valid before using for scaling calculations. Reviewed-by: Josip Pavic <Josip.Pavic@amd.com> Acked-by: Agustin Gutierrez Sanchez <agustin.gutierrez@amd.com> Signed-off-by: Aric Cyr <aric.cyr@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
b78f26d3ef
commit
94e587b8d1
@ -3009,6 +3009,11 @@ enum dc_status dc_validate_plane(struct dc *dc, const struct dc_plane_state *pla
|
||||
{
|
||||
enum dc_status res = DC_OK;
|
||||
|
||||
/* check if surface has invalid dimensions */
|
||||
if (plane_state->src_rect.width == 0 || plane_state->src_rect.height == 0 ||
|
||||
plane_state->dst_rect.width == 0 || plane_state->dst_rect.height == 0)
|
||||
return DC_FAIL_SURFACE_VALIDATE;
|
||||
|
||||
/* TODO For now validates pixel format only */
|
||||
if (dc->res_pool->funcs->validate_plane)
|
||||
return dc->res_pool->funcs->validate_plane(plane_state, &dc->caps);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user