Michael Niedermayer <mich...@niedermayer.cc> 于2022年3月21日周一 07:31写道: > > Fixes: signed integer overflow: 77777777777777 * 1000000 cannot be > represented in type 'long long' > Fixes: > 45545/clusterfuzz-testcase-minimized-ffmpeg_dem_HLS_fuzzer-6438101247983616 > > Found-by: continuous fuzzing process > https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg > Signed-off-by: Michael Niedermayer <mich...@niedermayer.cc> > --- > libavformat/hls.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/libavformat/hls.c b/libavformat/hls.c > index cf6ef9dfb6..a58c558ffe 100644 > --- a/libavformat/hls.c > +++ b/libavformat/hls.c > @@ -819,10 +819,16 @@ static int parse_playlist(HLSContext *c, const char > *url, > &info); > new_rendition(c, &info, url); > } else if (av_strstart(line, "#EXT-X-TARGETDURATION:", &ptr)) { > + int64_t t; > ret = ensure_playlist(c, &pls, url); > if (ret < 0) > goto fail; > - pls->target_duration = strtoll(ptr, NULL, 10) * AV_TIME_BASE; > + t = strtoll(ptr, NULL, 10); > + if (t < 0 || t >= INT64_MAX / AV_TIME_BASE) { > + ret = AVERROR_INVALIDDATA; > + goto fail; > + } > + pls->target_duration = t * AV_TIME_BASE; > } else if (av_strstart(line, "#EXT-X-MEDIA-SEQUENCE:", &ptr)) { > uint64_t seq_no; > ret = ensure_playlist(c, &pls, url); > -- > 2.17.1 > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
lgtm Thanks Steven _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".