diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2016-01-12 18:26:34 +0100 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2016-01-12 19:30:22 +0100 |
commit | d73f0c586e7ef064e2f2a7cb7c84075543e3f010 (patch) | |
tree | 09fcd6db393cc8ebf3bab156c8d19f5d5cd8f805 /libavformat/asfenc.c | |
parent | 782c4ab4ede27bf85c4c2862fce7887c62790470 (diff) | |
download | ffmpeg-d73f0c586e7ef064e2f2a7cb7c84075543e3f010.tar.gz |
avformat/asfenc: Flush packet before duration becomes unrepresentable
Fixes: 0063df8be3aaa30dd6d76f59c8f818c8/signal_sigsegv_7b7b59_3634_bf418b6822bbfa68734411d96b667be3.mov
Fixes assertion failure
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavformat/asfenc.c')
-rw-r--r-- | libavformat/asfenc.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libavformat/asfenc.c b/libavformat/asfenc.c index 32b726bb29..90d5c26317 100644 --- a/libavformat/asfenc.c +++ b/libavformat/asfenc.c @@ -862,6 +862,11 @@ static void put_frame(AVFormatContext *s, ASFStream *stream, AVStream *avst, flush_packet(s); continue; } + if (asf->packet_timestamp_start > INT64_MAX - UINT16_MAX || + timestamp > asf->packet_timestamp_start + UINT16_MAX) { + flush_packet(s); + continue; + } } if (frag_len1 > 0) { if (payload_len > frag_len1) |