summaryrefslogtreecommitdiff
path: root/libavformat/mux.c
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2022-12-28 18:36:11 -0300
committerJames Almer <jamrial@gmail.com>2023-01-03 21:35:03 -0300
commit99e3d26f2061541c772dcd678cbe8c48afa539c5 (patch)
tree25bd5ecbc3c418dd2e5d81c988c5f1091c766df6 /libavformat/mux.c
parent6e05622216e188fa601f663cdf4ac999172a081f (diff)
downloadffmpeg-99e3d26f2061541c772dcd678cbe8c48afa539c5.tar.gz
avformat/mux: use only valid timestamps when calculating packet distance
Fixes: signed integer overflow: 0 - -9223372036854775808 cannot be represented in type 'long int' Fixes: fate-cover-art-aiff-id3v2-remux, fate-cover-art-mp3-id3v2-remux and fate-mov-cover-image under ubsan. Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavformat/mux.c')
-rw-r--r--libavformat/mux.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/libavformat/mux.c b/libavformat/mux.c
index 37fe19358d..b2b5be63b4 100644
--- a/libavformat/mux.c
+++ b/libavformat/mux.c
@@ -951,6 +951,7 @@ int ff_interleave_packet_per_dts(AVFormatContext *s, AVPacket *pkt,
if (s->max_interleave_delta > 0 &&
si->packet_buffer.head &&
+ si->packet_buffer.head->pkt.dts != AV_NOPTS_VALUE &&
!flush &&
si->nb_interleaved_streams == stream_count+noninterleaved_count
) {