[FFmpeg-cvslog] avformat/matroskadec: Fix float-cast-overflow undefined behavior in matroska_parse_tracks()
ffmpeg | branch: release/3.3 | Nikolas Bowe| Thu Jan 18 15:21:56 2018 -0800| [980fe1b7a6fcbfc087dd2580308b565840e4eb6a] | committer: Michael Niedermayer avformat/matroskadec: Fix float-cast-overflow undefined behavior in matroska_parse_tracks() Signed-off-by: Michael Niedermayer (cherry picked from commit e07649e618caedc07eaf2f4d09253de7f77d14f0) Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=980fe1b7a6fcbfc087dd2580308b565840e4eb6a --- libavformat/matroskadec.c | 12 ++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 3ec1636584..cd6db9ebac 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -2071,8 +2071,16 @@ static int matroska_parse_tracks(AVFormatContext *s) } if (track->type == MATROSKA_TRACK_TYPE_VIDEO) { -if (!track->default_duration && track->video.frame_rate > 0) -track->default_duration = 10 / track->video.frame_rate; +if (!track->default_duration && track->video.frame_rate > 0) { +double default_duration = 10 / track->video.frame_rate; +if (default_duration > UINT64_MAX || default_duration < 0) { +av_log(matroska->ctx, AV_LOG_WARNING, + "Invalid frame rate %e. Cannot calculate default duration.\n", + track->video.frame_rate); +} else { +track->default_duration = default_duration; +} +} if (track->video.display_width == -1) track->video.display_width = track->video.pixel_width; if (track->video.display_height == -1) ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avformat/matroskadec: Fix float-cast-overflow undefined behavior in matroska_parse_tracks()
ffmpeg | branch: release/3.0 | Nikolas Bowe| Thu Jan 18 15:21:56 2018 -0800| [9d0b3fa58c4b12cb0203440f9c2d5f172d4f1792] | committer: Michael Niedermayer avformat/matroskadec: Fix float-cast-overflow undefined behavior in matroska_parse_tracks() Signed-off-by: Michael Niedermayer (cherry picked from commit e07649e618caedc07eaf2f4d09253de7f77d14f0) Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9d0b3fa58c4b12cb0203440f9c2d5f172d4f1792 --- libavformat/matroskadec.c | 12 ++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 76b9c8d0c2..0451c33fe7 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -1782,8 +1782,16 @@ static int matroska_parse_tracks(AVFormatContext *s) } if (track->type == MATROSKA_TRACK_TYPE_VIDEO) { -if (!track->default_duration && track->video.frame_rate > 0) -track->default_duration = 10 / track->video.frame_rate; +if (!track->default_duration && track->video.frame_rate > 0) { +double default_duration = 10 / track->video.frame_rate; +if (default_duration > UINT64_MAX || default_duration < 0) { +av_log(matroska->ctx, AV_LOG_WARNING, + "Invalid frame rate %e. Cannot calculate default duration.\n", + track->video.frame_rate); +} else { +track->default_duration = default_duration; +} +} if (track->video.display_width == -1) track->video.display_width = track->video.pixel_width; if (track->video.display_height == -1) ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avformat/matroskadec: Fix float-cast-overflow undefined behavior in matroska_parse_tracks()
ffmpeg | branch: release/2.8 | Nikolas Bowe| Thu Jan 18 15:21:56 2018 -0800| [5971f1941b39a19ced10e24adc3a26de80542600] | committer: Michael Niedermayer avformat/matroskadec: Fix float-cast-overflow undefined behavior in matroska_parse_tracks() Signed-off-by: Michael Niedermayer (cherry picked from commit e07649e618caedc07eaf2f4d09253de7f77d14f0) Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5971f1941b39a19ced10e24adc3a26de80542600 --- libavformat/matroskadec.c | 12 ++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 4e12c840b0..0ab5caf652 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -1693,8 +1693,16 @@ static int matroska_parse_tracks(AVFormatContext *s) } if (track->type == MATROSKA_TRACK_TYPE_VIDEO) { -if (!track->default_duration && track->video.frame_rate > 0) -track->default_duration = 10 / track->video.frame_rate; +if (!track->default_duration && track->video.frame_rate > 0) { +double default_duration = 10 / track->video.frame_rate; +if (default_duration > UINT64_MAX || default_duration < 0) { +av_log(matroska->ctx, AV_LOG_WARNING, + "Invalid frame rate %e. Cannot calculate default duration.\n", + track->video.frame_rate); +} else { +track->default_duration = default_duration; +} +} if (track->video.display_width == -1) track->video.display_width = track->video.pixel_width; if (track->video.display_height == -1) ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avformat/matroskadec: Fix float-cast-overflow undefined behavior in matroska_parse_tracks()
ffmpeg | branch: release/3.4 | Nikolas Bowe| Thu Jan 18 15:21:56 2018 -0800| [facd0521e44063f8d8b57b11a4803ae82c0c123b] | committer: Michael Niedermayer avformat/matroskadec: Fix float-cast-overflow undefined behavior in matroska_parse_tracks() Signed-off-by: Michael Niedermayer (cherry picked from commit e07649e618caedc07eaf2f4d09253de7f77d14f0) Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=facd0521e44063f8d8b57b11a4803ae82c0c123b --- libavformat/matroskadec.c | 12 ++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 94a56ebfa7..e6631097b8 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -2089,8 +2089,16 @@ static int matroska_parse_tracks(AVFormatContext *s) } if (track->type == MATROSKA_TRACK_TYPE_VIDEO) { -if (!track->default_duration && track->video.frame_rate > 0) -track->default_duration = 10 / track->video.frame_rate; +if (!track->default_duration && track->video.frame_rate > 0) { +double default_duration = 10 / track->video.frame_rate; +if (default_duration > UINT64_MAX || default_duration < 0) { +av_log(matroska->ctx, AV_LOG_WARNING, + "Invalid frame rate %e. Cannot calculate default duration.\n", + track->video.frame_rate); +} else { +track->default_duration = default_duration; +} +} if (track->video.display_width == -1) track->video.display_width = track->video.pixel_width; if (track->video.display_height == -1) ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avformat/matroskadec: Fix float-cast-overflow undefined behavior in matroska_parse_tracks()
ffmpeg | branch: master | Nikolas Bowe| Thu Jan 18 15:21:56 2018 -0800| [e07649e618caedc07eaf2f4d09253de7f77d14f0] | committer: Michael Niedermayer avformat/matroskadec: Fix float-cast-overflow undefined behavior in matroska_parse_tracks() Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e07649e618caedc07eaf2f4d09253de7f77d14f0 --- libavformat/matroskadec.c | 12 ++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 496499b553..158ce7ae1f 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -2096,8 +2096,16 @@ static int matroska_parse_tracks(AVFormatContext *s) } if (track->type == MATROSKA_TRACK_TYPE_VIDEO) { -if (!track->default_duration && track->video.frame_rate > 0) -track->default_duration = 10 / track->video.frame_rate; +if (!track->default_duration && track->video.frame_rate > 0) { +double default_duration = 10 / track->video.frame_rate; +if (default_duration > UINT64_MAX || default_duration < 0) { +av_log(matroska->ctx, AV_LOG_WARNING, + "Invalid frame rate %e. Cannot calculate default duration.\n", + track->video.frame_rate); +} else { +track->default_duration = default_duration; +} +} if (track->video.display_width == -1) track->video.display_width = track->video.pixel_width; if (track->video.display_height == -1) ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog