On 27/01/16 22:15, Derek Buitenhuis wrote: > It could accidentally divide by zero if num was zero. > > Signed-off-by: Derek Buitenhuis <derek.buitenh...@gmail.com> > --- > libavcodec/utils.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/libavcodec/utils.c b/libavcodec/utils.c > index e06ee66..a3cb341 100644 > --- a/libavcodec/utils.c > +++ b/libavcodec/utils.c > @@ -1050,7 +1050,7 @@ FF_ENABLE_DEPRECATION_WARNINGS > if (!avctx->rc_initial_buffer_occupancy) > avctx->rc_initial_buffer_occupancy = avctx->rc_buffer_size * 3 / > 4; > > - if (avctx->ticks_per_frame && > + if (avctx->ticks_per_frame && avctx->time_base.num && > avctx->ticks_per_frame > INT_MAX / avctx->time_base.num) { > av_log(avctx, AV_LOG_ERROR, > "ticks_per_frame %d too large for the timebase %d/%d.", >
What about something like diff --git a/libavcodec/utils.c b/libavcodec/utils.c index e06ee66..abad71a 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -1050,6 +1050,14 @@ FF_ENABLE_DEPRECATION_WARNINGS if (!avctx->rc_initial_buffer_occupancy) avctx->rc_initial_buffer_occupancy = avctx->rc_buffer_size * 3 / 4; + if (avctx->time_base.num <= 0 || + avctx->time_base.den <= 0) { + av_log(avctx, AV_LOG_ERROR, "Impossible time base %d/%d.", + avctx->time_base.num, + avctx->time_base.den); + goto free_and_end; + } + if (avctx->ticks_per_frame && avctx->ticks_per_frame > INT_MAX / avctx->time_base.num) { av_log(avctx, AV_LOG_ERROR, _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel