diff options
author | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2009-09-30 07:33:05 +0000 |
---|---|---|
committer | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2009-09-30 07:33:05 +0000 |
commit | f6f8acc19a62fb5dff407a9946a46374dab73b23 (patch) | |
tree | 6cf3083b7d1e8c2c8ad987a62674c3c8dea320fc /libmpdemux/demux_mkv.c | |
parent | d1b5f6efa12de667a9a64233b4c3a3456a577fc5 (diff) |
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.c | 3 |
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 * |