diff options
author | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-01-09 07:18:14 +0000 |
---|---|---|
committer | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-01-09 07:18:14 +0000 |
commit | f9e6def939dccb3b8ac254afdaa6af6c2428ee4f (patch) | |
tree | fd72c82c6d73634fe3171190c4b09d586f15330e /libmpdemux/demux_mov.c | |
parent | 41f6ee5c0ec84f8a479bebb5255ca8c9f84f0c85 (diff) | |
download | mpv-f9e6def939dccb3b8ac254afdaa6af6c2428ee4f.tar.bz2 mpv-f9e6def939dccb3b8ac254afdaa6af6c2428ee4f.tar.xz |
Codecdata must always be malloc'd, fixes free being called with an
invalid pointer when freeing codecdata.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25658 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_mov.c')
-rw-r--r-- | libmpdemux/demux_mov.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libmpdemux/demux_mov.c b/libmpdemux/demux_mov.c index c10330a3f9..34ca6f4f90 100644 --- a/libmpdemux/demux_mov.c +++ b/libmpdemux/demux_mov.c @@ -747,13 +747,15 @@ static int gen_sh_audio(sh_audio_t* sh, mov_track_t* trak, int timescale) { default: if (len > 8 && len + 44 <= trak->stdata_len) { sh->codecdata_len = len-8; - sh->codecdata = trak->stdata+44+8; + sh->codecdata = malloc(sh->codecdata_len); + memcpy(sh->codecdata, trak->stdata+44+8, sh->codecdata_len); } } } else { if (len > 8 && len + 44 <= trak->stdata_len) { sh->codecdata_len = len-8; - sh->codecdata = trak->stdata+44+8; + sh->codecdata = malloc(sh->codecdata_len); + memcpy(sh->codecdata, trak->stdata+44+8, sh->codecdata_len); } } } |