On 1/17/2020 8:11 PM, Michael Niedermayer wrote: > Fixes: signed integer overflow: 9223372036854775775 + 128 cannot be > represented in type 'long' > Fixes: > 20054/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_FFWAVESYNTH_fuzzer-5686385113825280 > > Found-by: continuous fuzzing process > https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg > Signed-off-by: Michael Niedermayer <[email protected]> > --- > libavcodec/ffwavesynth.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/libavcodec/ffwavesynth.c b/libavcodec/ffwavesynth.c > index b9c63abb8d..bb593fbe47 100644 > --- a/libavcodec/ffwavesynth.c > +++ b/libavcodec/ffwavesynth.c > @@ -217,7 +217,7 @@ static void wavesynth_seek(struct wavesynth_context *ws, > int64_t ts) > *last = -1; > lcg_seek(&ws->dither_state, (uint32_t)ts - (uint32_t)ws->cur_ts); > if (ws->pink_need) { > - uint64_t pink_ts_cur = (ws->cur_ts + PINK_UNIT - 1) & ~(PINK_UNIT - > 1); > + uint64_t pink_ts_cur = (ws->cur_ts + (uint64_t)PINK_UNIT - 1) & > ~(PINK_UNIT - 1);
Can't you make PINK_UNIT 128UL or 128ULL? Or will that affect other checks negatively? > uint64_t pink_ts_next = ts & ~(PINK_UNIT - 1); > int pos = ts & (PINK_UNIT - 1); > lcg_seek(&ws->pink_state, (uint32_t)(pink_ts_next - pink_ts_cur) * > 2); > _______________________________________________ ffmpeg-devel mailing list [email protected] https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
