summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_mkv.c
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2009-09-30 07:48:01 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2009-09-30 07:48:01 +0000
commit640d819512dc8fd56952426a3ce028eab9b35bf5 (patch)
treeac40c8f2a675351ca023514a6c7eb596271e4b78 /libmpdemux/demux_mkv.c
parent62a3efebf2917747226fa380b680a08b65f408df (diff)
downloadmpv-640d819512dc8fd56952426a3ce028eab9b35bf5.tar.bz2
mpv-640d819512dc8fd56952426a3ce028eab9b35bf5.tar.xz
Check for grow_array allocation failure.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29738 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_mkv.c')
-rw-r--r--libmpdemux/demux_mkv.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libmpdemux/demux_mkv.c b/libmpdemux/demux_mkv.c
index 6f57ad6520..cb23da7301 100644
--- a/libmpdemux/demux_mkv.c
+++ b/libmpdemux/demux_mkv.c
@@ -245,6 +245,10 @@ add_cluster_position (mkv_demuxer_t *mkv_d, uint64_t position)
grow_array(&mkv_d->cluster_positions, mkv_d->num_cluster_pos,
sizeof(uint64_t));
+ if (!mkv_d->cluster_positions) {
+ mkv_d->num_cluster_pos = 0;
+ return;
+ }
mkv_d->cluster_positions[mkv_d->num_cluster_pos++] = position;
}
@@ -1088,6 +1092,10 @@ demux_mkv_read_cues (demuxer_t *demuxer)
&& pos != EBML_UINT_INVALID)
{
grow_array(&mkv_d->indexes, mkv_d->num_indexes, sizeof(mkv_index_t));
+ if (!mkv_d->indexes) {
+ mkv_d->num_indexes = 0;
+ break;
+ }
mkv_d->indexes[mkv_d->num_indexes].tnum = track;
mkv_d->indexes[mkv_d->num_indexes].timecode = time;
mkv_d->indexes[mkv_d->num_indexes].filepos =mkv_d->segment_start+pos;