diff options
author | Ben Boeckel <mathstuf@gmail.com> | 2013-09-26 20:42:09 -0400 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-09-27 08:45:02 +0200 |
commit | 9f149717a625d03033380fd5f6904b328ea51f5b (patch) | |
tree | 24b33399825d51f775d445ea052e6df81c228a2e /demux/demux_mkv.c | |
parent | 2970352b2590292301f322653af6caf275fc16f5 (diff) | |
download | mpv-9f149717a625d03033380fd5f6904b328ea51f5b.tar.bz2 mpv-9f149717a625d03033380fd5f6904b328ea51f5b.tar.xz |
matroska: prevent uids from being dereferenced when NULL
The old code prevented it since uids being NULL makes a 0 talloc length.
Now that we're iterating over a specific length, NULL can be
dereferenced.
Diffstat (limited to 'demux/demux_mkv.c')
-rw-r--r-- | demux/demux_mkv.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c index fec2e223d0..bbbe88d903 100644 --- a/demux/demux_mkv.c +++ b/demux/demux_mkv.c @@ -392,11 +392,11 @@ static int demux_mkv_read_info(demuxer_t *demuxer) } if (demuxer->params && demuxer->params->matroska_wanted_uids) { unsigned char (*uids)[16] = demuxer->params->matroska_wanted_uids; - if (!info.n_segment_uid) - uids = NULL; - for (int i = 0; i < demuxer->params->matroska_num_wanted_uids; i++) { - if (!memcmp(info.segment_uid.start, uids[i], 16)) - goto out; + if (info.n_segment_uid) { + for (int i = 0; i < demuxer->params->matroska_num_wanted_uids; i++) { + if (!memcmp(info.segment_uid.start, uids[i], 16)) + goto out; + } } mp_tmsg(MSGT_DEMUX, MSGL_INFO, "[mkv] This is not one of the wanted files. " |