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

Swati Sharma swati2.sharma at intel.com
Wed Mar 22 10:22:18 UTC 2023



On 22-Mar-23 3:36 PM, Luca Coelho wrote:
> 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?
Right.
Should we add igt_require(n_planes >=2)?
With that if n_planes=1 test will SKIP.
> 
> --
> Cheers,
> Luca.

-- 
~Swati Sharma


More information about the igt-dev mailing list