﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
318	Missing initialization of MvdCpL0 array	fbarbier		"In 7.3.7.5 Coding unit syntax,
conditions on MotionModelIdc trigger parsing of mvd_coding with different values of cpIdx (0..2).

{{{

				mvd_coding( x0, y0, 0, 0 )
				if( MotionModelIdc[ x0 ][ y0 ] > 0 )
					mvd_coding( x0, y0, 0, 1 )
				if(MotionModelIdc[ x0 ][ y0 ] > 1 )
					mvd_coding( x0, y0, 0, 2 )
}}}

However, the decision for parsing amvr_flag may use a non initialized slot
{{{

			if( ( sps_amvr_enabled_flag  &&  inter_affine_flag[ x0 ][ y0 ]  = =  0  &&
				  ( MvdL0[ x0 ][ y0 ][ 0 ]  != 0  | |  MvdL0[ x0 ][ y0 ][ 1 ] != 0  | |
				    MvdL1[ x0 ][ y0 ][ 0 ]  != 0  | |  MvdL1[ x0 ][ y0 ][ 1 ] != 0 ) )  | |
				 ( sps_affine_amvr_enabled_flag  &&  inter_affine_flag[ x0 ][ y0 ]  = =  1  &&
				  ( MvdCpL0[ x0 ][ y0 ][ 0 ] [ 0 ]  != 0  | |  MvdCpL0[ x0 ][ y0 ][ 0 ] [ 1 ] != 0  | |
				    MvdCpL1[ x0 ][ y0 ][ 0 ] [ 0 ]  != 0  | |  MvdCpL1[ x0 ][ y0 ][ 0 ] [ 1 ] != 0  | |
				    MvdCpL0[ x0 ][ y0 ][ 1 ] [ 0 ]  != 0  | |  MvdCpL0[ x0 ][ y0 ][ 1 ] [ 1 ] != 0  | |
				    MvdCpL1[ x0 ][ y0 ][ 1 ] [ 0 ]  != 0  | |  MvdCpL1[ x0 ][ y0 ][ 1 ] [ 1 ] != 0  | |
				    MvdCpL0[ x0 ][ y0 ][ 2 ] [ 0 ]  != 0  | |  MvdCpL0[ x0 ][ y0 ][ 2 ] [ 1 ] != 0  | |
				    MvdCpL1[ x0 ][ y0 ][ 2 ] [ 0 ]  != 0  | |  MvdCpL1[ x0 ][ y0 ][ 2 ] [ 1 ]  !=  0 ) ) {

}}}

For example, if MotionModelIdc is 1, MvdCpL0[x0][y0][2][0] and MvdCpL0[x0][y0][2][1] are not initialized but may be read.

"	defect	closed	minor		spec	VVC D7 vE	fixed		ksuehring bbross XiangLi fbossen jvet@…
