avcodec/pictordec: Optimize more odd cases for picmemset()
Fixes: Timeout Fixes: 36875/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PICTOR_fuzzer-4842960888922112 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Tested-by: Peter Ross <pross@xvid.org> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
		
							parent
							
								
									cbf111059d
								
							
						
					
					
						commit
						31f03120e8
					
				| @ -89,8 +89,7 @@ static void picmemset(PicContext *s, AVFrame *frame, unsigned value, int run, | ||||
|                 d = frame->data[0] + yl * frame->linesize[0]; | ||||
|                 if (s->nb_planes == 1 && | ||||
|                     run*pixels_per_value >= s->width && | ||||
|                     pixels_per_value < s->width && | ||||
|                     s->width % pixels_per_value == 0 | ||||
|                     pixels_per_value < (s->width / pixels_per_value * pixels_per_value) | ||||
|                     ) { | ||||
|                     for (; xl < pixels_per_value; xl ++) { | ||||
|                         j = (j < bits_per_plane ? 8 : j) - bits_per_plane; | ||||
| @ -98,7 +97,7 @@ static void picmemset(PicContext *s, AVFrame *frame, unsigned value, int run, | ||||
|                     } | ||||
|                     av_memcpy_backptr(d+xl, pixels_per_value, s->width - xl); | ||||
|                     run -= s->width / pixels_per_value; | ||||
|                     xl = s->width; | ||||
|                     xl = s->width / pixels_per_value * pixels_per_value; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user