[FFmpeg-devel] [PATCH] Avoid undefined behavior when start_time_text is -1<<63
Fredrik Hubinette
hubbe at google.com
Mon Jul 30 23:49:24 EEST 2018
Is casting a negative integer to unsigned defined behavior?
On Wed, Jul 18, 2018 at 3:55 AM Michael Niedermayer <michael at niedermayer.cc>
wrote:
> On Tue, Jul 17, 2018 at 02:37:55PM -0700, Fredrik Hubinette wrote:
> >
>
> > utils.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> > e69f1a3a447e331cad7ea85e28c0ed13e48ce33c
> 0001-Avoid-undefined-behavior-when-start_time_text-is-1-6.patch
> > From d7bd55c3d280c10b990577003a985296f10a2b59 Mon Sep 17 00:00:00 2001
> > From: Fredrik Hubinette <hubbe at google.com>
> > Date: Tue, 17 Jul 2018 14:35:55 -0700
> > Subject: [PATCH] Avoid undefined behavior when start_time_text is -1<<63
> >
> > ---
> > libavformat/utils.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/libavformat/utils.c b/libavformat/utils.c
> > index c9cdd2b470..5b83ed7872 100644
> > --- a/libavformat/utils.c
> > +++ b/libavformat/utils.c
> > @@ -2666,7 +2666,7 @@ static void update_stream_timings(AVFormatContext
> *ic)
> > duration = FFMAX(duration, duration1);
> > }
> > }
> > - if (start_time == INT64_MAX || (start_time > start_time_text &&
> start_time - start_time_text < AV_TIME_BASE))
> > + if (start_time == INT64_MAX || (start_time > start_time_text &&
> start_time - AV_TIME_BASE < start_time_text ))
>
> Casting to uint64_t should be a more complete fix.
>
> [...]
>
> --
> Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> Awnsering whenever a program halts or runs forever is
> On a turing machine, in general impossible (turings halting problem).
> On any real computer, always possible as a real computer has a finite
> number
> of states N, and will either halt in less than N cycles or never halt.
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
More information about the ffmpeg-devel
mailing list