[FFmpeg-devel] [PATCH] mpegts: prevent division by zero

Michael Niedermayer michael at niedermayer.cc
Tue Nov 8 01:54:07 EET 2016


On Mon, Nov 07, 2016 at 11:49:52PM +0100, Andreas Cadhalpun wrote:
> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
> ---
>  libavformat/mpegts.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
> index fad10c6..77d63f2 100644
> --- a/libavformat/mpegts.c
> +++ b/libavformat/mpegts.c
> @@ -2692,6 +2692,10 @@ static int mpegts_read_header(AVFormatContext *s)
>          /* NOTE1: the bitrate is computed without the FEC */
>          /* NOTE2: it is only the bitrate of the start of the stream */
>          ts->pcr_incr = (pcrs[1] - pcrs[0]) / (packet_count[1] - packet_count[0]);
> +        if (ts->pcr_incr <= 0) {
> +            av_log(s, AV_LOG_ERROR, "invalid pcr increment %d\n", ts->pcr_incr);
> +            return AVERROR_INVALIDDATA;
> +        }

if a pcr pair is bad i would suggest to run the loop by another
iteration

also i dont think the demuxer should fail hard and fatal from bad pcr
(it would fail completely if it fails at header reading time)


[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

If you fake or manipulate statistics in a paper in physics you will never
get a job again.
If you fake or manipulate statistics in a paper in medicin you will get
a job for life at the pharma industry.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20161108/b13142ae/attachment.sig>


More information about the ffmpeg-devel mailing list