diff options
author | wm4 <wm4@nowhere> | 2014-12-06 13:47:03 +0100 |
---|---|---|
committer | Alessandro Ghedini <alessandro@ghedini.me> | 2014-12-08 00:04:27 +0100 |
commit | 7c53bb4bb13d477e359da11a7866583b38bb89a4 (patch) | |
tree | 19702d1defe185ec7f9bf5be39b21c9544dffb02 | |
parent | 115709e3c1663e13ff7a5654db3f4f082a8d7152 (diff) | |
download | mpv-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.c | 4 |
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; |