You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	avcodec/ffwavesynth: Simplify lcg_seek(), avoid negative case
Fixes: negation of -9223372036854775808 cannot be represented in type 'int64_t' (aka 'long'); cast to an unsigned type to negate this value to itself Fixes: 15289/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_FFWAVESYNTH_fuzzer-5709034499342336 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:
		| @@ -113,18 +113,12 @@ static uint32_t lcg_next(uint32_t *s) | ||||
|     return *s; | ||||
| } | ||||
|  | ||||
| static void lcg_seek(uint32_t *s, int64_t dt) | ||||
| static void lcg_seek(uint32_t *s, uint32_t dt) | ||||
| { | ||||
|     uint32_t a, c, t = *s; | ||||
|  | ||||
|     if (dt >= 0) { | ||||
|         a = LCG_A; | ||||
|         c = LCG_C; | ||||
|     } else { /* coefficients for a step backward */ | ||||
|         a = LCG_AI; | ||||
|         c = (uint32_t)(-LCG_AI * LCG_C); | ||||
|         dt = -dt; | ||||
|     } | ||||
|     a = LCG_A; | ||||
|     c = LCG_C; | ||||
|     while (dt) { | ||||
|         if (dt & 1) | ||||
|             t = a * t + c; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user