summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_mkv.c
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2009-09-30 07:33:05 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2009-09-30 07:33:05 +0000
commitf6f8acc19a62fb5dff407a9946a46374dab73b23 (patch)
tree6cf3083b7d1e8c2c8ad987a62674c3c8dea320fc /libmpdemux/demux_mkv.c
parentd1b5f6efa12de667a9a64233b4c3a3456a577fc5 (diff)
downloadmpv-f6f8acc19a62fb5dff407a9946a46374dab73b23.tar.bz2
mpv-f6f8acc19a62fb5dff407a9946a46374dab73b23.tar.xz
Avoid a memleak if realloc fails in grow_array.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29734 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_mkv.c')
-rw-r--r--libmpdemux/demux_mkv.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libmpdemux/demux_mkv.c b/libmpdemux/demux_mkv.c
index 3163f9b658..0d420707d1 100644
--- a/libmpdemux/demux_mkv.c
+++ b/libmpdemux/demux_mkv.c
@@ -210,8 +210,11 @@ extern int dvdsub_id;
*/
static void grow_array(void *arrayp, int nelem, size_t elsize) {
void **array = arrayp;
+ void *oldp = *array;
if (!(nelem & 31))
*array = realloc(*array, (nelem + 32) * elsize);
+ if (!*array)
+ free(oldp);
}
static mkv_track_t *