[FFmpeg-devel] [PATCH] Fix signed integer overflow in mov_write_single_packet Detected with clang and -fsanitize=signed-integer-overflow

Carl Eugen Hoyos ceffmpeg at gmail.com
Sat Oct 7 03:05:21 EEST 2017


2017-10-07 1:20 GMT+02:00 Vitaly Buka <vitalybuka-at-google.com at ffmpeg.org>:
> Signed-off-by: Vitaly Buka <vitalybuka at google.com>
> ---
>  libavformat/movenc.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/libavformat/movenc.c b/libavformat/movenc.c
> index 2838286141..e70500ae2c 100644
> --- a/libavformat/movenc.c
> +++ b/libavformat/movenc.c
> @@ -5354,6 +5354,10 @@ static int mov_write_single_packet(AVFormatContext *s, AVPacket *pkt)
>                  // duration, but only helps for this particular track, not
>                  // for the other ones that are flushed at the same time.
>                  trk->track_duration = pkt->dts - trk->start_dts;
> +                if (trk->start_dts != AV_NOPTS_VALUE)
> +                    trk->track_duration = pkt->dts - trk->start_dts;
> +                else
> +                    trk->track_duration = 0;

I suspect you wanted to remove the line immediately
before the new lines, no?
Please consider adding braces around the else.

Carl Eugen


More information about the ffmpeg-devel mailing list