[igt-dev] [PATCH i-g-t v2] tests/kms_plane_scaling: Fix out-of-bound array access

Luca Coelho luca at coelho.fi
Wed Mar 22 10:06:23 UTC 2023


On Mon, 2023-03-20 at 20:06 +0530, Swati Sharma wrote:
> With this fix we are solving 2 issues. Firstly, the
> planes_scaling_combo() tests were leaving one scaler assigned
> after running sub-test with two consecutive planes because
> one scaler was getting reused in the next run. So with this fix
> scaler is not reused since we won't have any common plane.
> 
> Secondly, when k == n_planes - 1, we were trying to access
> planes[n_planes], which led to array out of bounds error. So, with
> this fix, this issue is fixed too.
> 
> v2: -fix condition if n_planes is not even (JP)
> 
> Suggested-by: Luca Coelho <luciano.coelho at intel.com>
> Suggested-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
> Reported-by: Luca Coelho <luciano.coelho at intel.com>
> Signed-off-by: Swati Sharma <swati2.sharma at intel.com>
> ---
>  tests/kms_plane_scaling.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
> index 3a6904afb..7feb45ca3 100644
> --- a/tests/kms_plane_scaling.c
> +++ b/tests/kms_plane_scaling.c
> @@ -744,7 +744,7 @@ test_planes_scaling_combo(data_t *d, int w1, int h1, int w2, int h2,
>  		igt_assert(0);
>  	}
>  
> -	for (int k = 0; k < display->pipes[pipe].n_planes; k++) {
> +	for (int k = 0; k < display->pipes[pipe].n_planes - 1; k += 2) {
>  		igt_plane_t *p1, *p2;
>  
>  		p1 = &display->pipes[pipe].planes[k];

What will happen if we have only 1 plane? Shouldn't the test be
skipped? It seems that the loop will just not run and the test result
will be pass?

--
Cheers,
Luca.


More information about the igt-dev mailing list