drm/amd/display: Check for invalid input params when building scaling params
authorMichael Strauss <michael.strauss@amd.com>
Wed, 23 Mar 2022 20:06:25 +0000 (16:06 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 5 Apr 2022 14:29:48 +0000 (10:29 -0400)
[WHY]
Function to calculate scaling ratios can be called with invalid plane
src/dest, causing a divide by zero.

[HOW]
Fail building scaling params if plane state src/dest rects are
unpopulated

Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Reviewed-by: Charlene Liu <Charlene.Liu@amd.com>
Acked-by: Tom Chung <chiahsuan.chung@amd.com>
Signed-off-by: Michael Strauss <michael.strauss@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_resource.c

index d251c3f..f5777a7 100644 (file)
@@ -1076,6 +1076,15 @@ bool resource_build_scaling_params(struct pipe_ctx *pipe_ctx)
        bool res = false;
        DC_LOGGER_INIT(pipe_ctx->stream->ctx->logger);
 
+       /* Invalid input */
+       if (!plane_state->dst_rect.width ||
+                       !plane_state->dst_rect.height ||
+                       !plane_state->src_rect.width ||
+                       !plane_state->src_rect.height) {
+               ASSERT(0);
+               return false;
+       }
+
        pipe_ctx->plane_res.scl_data.format = convert_pixel_format_to_dalsurface(
                        pipe_ctx->plane_state->format);