summaryrefslogtreecommitdiffstats
path: root/demux
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-12-06 13:47:03 +0100
committerwm4 <wm4@nowhere>2014-12-06 13:47:03 +0100
commit429fe85c4827035cab5dea163e427630d8b4f93f (patch)
tree744290cd58b5d4465e444025029c28c1029eec52 /demux
parent73b7d4516bd2b4b06610b16de879e5b7c2cbd7ee (diff)
downloadmpv-429fe85c4827035cab5dea163e427630d8b4f93f.tar.bz2
mpv-429fe85c4827035cab5dea163e427630d8b4f93f.tar.xz
demux_mkv: reject 0 TimecodeScale
Also reject anything over INT_MAX; no particular reason for this upper bound. Fixes #1317.
Diffstat (limited to 'demux')
-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 6d2e16df1c..2a0f5c08b3 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;