Module: libav Branch: release/0.8 Commit: a593d2e92e1491ec04f315d9e38b001b74dcf0b4
Author: Martin Storsjö <[email protected]> Committer: Sean McGovern <[email protected]> Date: Mon Jul 15 17:13:54 2013 +0300 mov: Do not allow updating the time scale after it has been set The time scale is set in mdhd, and later validated in the enclosing trak atom once all of its children have been parsed. A loose mdhd atom outside of a trak atom could update the time scale of the last stream without any validation. Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Cc: [email protected] Signed-off-by: Martin Storsjö <[email protected]> (cherry picked from commit 31931520df35a6f9606fe8293c8a39e2d1fabedf) Signed-off-by: Luca Barbato <[email protected]> --- libavformat/mov.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libavformat/mov.c b/libavformat/mov.c index 1dbf63f..0e5d473 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -736,6 +736,11 @@ static int mov_read_mdhd(MOVContext *c, AVIOContext *pb, MOVAtom atom) st = c->fc->streams[c->fc->nb_streams-1]; sc = st->priv_data; + if (sc->time_scale) { + av_log(c->fc, AV_LOG_ERROR, "Multiple mdhd?\n"); + return AVERROR_INVALIDDATA; + } + version = avio_r8(pb); if (version > 1) { av_log_ask_for_sample(c, "unsupported version %d\n", version); _______________________________________________ libav-commits mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-commits
