Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2016-01-12 20:26:34 +0300
committerMichael Niedermayer <michael@niedermayer.cc>2016-01-12 21:30:22 +0300
commitd73f0c586e7ef064e2f2a7cb7c84075543e3f010 (patch)
tree09fcd6db393cc8ebf3bab156c8d19f5d5cd8f805 /libavformat/asfenc.c
parent782c4ab4ede27bf85c4c2862fce7887c62790470 (diff)
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.c5
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)