avcodec/exr: Check col/line for integer overflow
Fixes: signed integer overflow: -2272 + -2147483360 cannot be represented in type 'int' Fixes: 30009/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_EXR_fuzzer-5005660322398208 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
		
							parent
							
								
									c281d84b20
								
							
						
					
					
						commit
						312bcdbfc1
					
				@ -1214,6 +1214,11 @@ static int decode_block(AVCodecContext *avctx, void *tdata,
 | 
				
			|||||||
            return AVERROR_PATCHWELCOME;
 | 
					            return AVERROR_PATCHWELCOME;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (tile_x && s->tile_attr.xSize + (int64_t)FFMAX(s->xmin, 0) >= INT_MAX / tile_x )
 | 
				
			||||||
 | 
					            return AVERROR_INVALIDDATA;
 | 
				
			||||||
 | 
					        if (tile_y && s->tile_attr.ySize + (int64_t)FFMAX(s->ymin, 0) >= INT_MAX / tile_y )
 | 
				
			||||||
 | 
					            return AVERROR_INVALIDDATA;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        line = s->ymin + s->tile_attr.ySize * tile_y;
 | 
					        line = s->ymin + s->tile_attr.ySize * tile_y;
 | 
				
			||||||
        col = s->tile_attr.xSize * tile_x;
 | 
					        col = s->tile_attr.xSize * tile_x;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user