diff options
author | wm4 <wm4@nowhere> | 2014-12-06 13:47:03 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2014-12-06 13:47:03 +0100 |
commit | 429fe85c4827035cab5dea163e427630d8b4f93f (patch) | |
tree | 744290cd58b5d4465e444025029c28c1029eec52 /demux/demux_mkv.c | |
parent | 73b7d4516bd2b4b06610b16de879e5b7c2cbd7ee (diff) | |
download | mpv-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/demux_mkv.c')
-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 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; |