avformat/flvdec: Check array entry number
Fixes: signed integer overflow: -2147483648 - 1 cannot be represented in type 'int' Fixes: 30209/clusterfuzz-testcase-minimized-ffmpeg_dem_FLV_fuzzer-5724831658147840 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> (cherry picked from commit b5d8fe1c874947ca67ee8117b18f8052f0e590fc) Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
		
							parent
							
								
									322a0a6dd2
								
							
						
					
					
						commit
						a8cfab28cb
					
				| @ -835,6 +835,8 @@ static int amf_skip_tag(AVIOContext *pb, AMFDataType type, int depth) | |||||||
|         parse_name = 0; |         parse_name = 0; | ||||||
|     case AMF_DATA_TYPE_MIXEDARRAY: |     case AMF_DATA_TYPE_MIXEDARRAY: | ||||||
|         nb = avio_rb32(pb); |         nb = avio_rb32(pb); | ||||||
|  |         if (nb < 0) | ||||||
|  |             return AVERROR_INVALIDDATA; | ||||||
|     case AMF_DATA_TYPE_OBJECT: |     case AMF_DATA_TYPE_OBJECT: | ||||||
|         while(!pb->eof_reached && (nb-- > 0 || type != AMF_DATA_TYPE_ARRAY)) { |         while(!pb->eof_reached && (nb-- > 0 || type != AMF_DATA_TYPE_ARRAY)) { | ||||||
|             if (parse_name) { |             if (parse_name) { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user