summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-12-06 13:47:03 +0100
committerAlessandro Ghedini <alessandro@ghedini.me>2014-12-08 00:04:27 +0100
commit7c53bb4bb13d477e359da11a7866583b38bb89a4 (patch)
tree19702d1defe185ec7f9bf5be39b21c9544dffb02
parent115709e3c1663e13ff7a5654db3f4f082a8d7152 (diff)
downloadmpv-7c53bb4bb13d477e359da11a7866583b38bb89a4.tar.bz2
mpv-7c53bb4bb13d477e359da11a7866583b38bb89a4.tar.xz
demux_mkv: reject 0 TimecodeScale
Also reject anything over INT_MAX; no particular reason for this upper bound. Fixes #1317.
-rw-r--r--demux/demux_mkv.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c
index d77c52a581..978a869246 100644
--- a/demux/demux_mkv.c
+++ b/demux/demux_mkv.c
@@ -345,6 +345,10 @@ static int demux_mkv_read_info(demuxer_t *demuxer)
if (info.n_timecode_scale) {
mkv_d->tc_scale = info.timecode_scale;
MP_VERBOSE(demuxer, "| + timecode scale: %" PRIu64 "\n", mkv_d->tc_scale);
+ if (mkv_d->tc_scale < 1 || mkv_d->tc_scale > INT_MAX) {
+ res = -1;
+ goto out;
+ }
}
if (info.n_duration) {
mkv_d->duration = info.duration * mkv_d->tc_scale / 1e9;