summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_mov.c
diff options
context:
space:
mode:
authoratmos4 <atmos4@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-03-24 03:07:18 +0000
committeratmos4 <atmos4@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-03-24 03:07:18 +0000
commit582d209217facc18cdc3b179a9b4bbf22a94828d (patch)
tree77052d202dbb3a415a36a4dc545f236a452e9d13 /libmpdemux/demux_mov.c
parenta316f53a830e8d9b22b50ef21bc0d6543f5bb449 (diff)
downloadmpv-582d209217facc18cdc3b179a9b4bbf22a94828d.tar.bz2
mpv-582d209217facc18cdc3b179a9b4bbf22a94828d.tar.xz
10l fix memory allocation
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5304 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_mov.c')
-rw-r--r--libmpdemux/demux_mov.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libmpdemux/demux_mov.c b/libmpdemux/demux_mov.c
index d33547f4f5..9b3e3278fb 100644
--- a/libmpdemux/demux_mov.c
+++ b/libmpdemux/demux_mov.c
@@ -707,7 +707,7 @@ static void lschunks(demuxer_t* demuxer,int level,off_t endpos,mov_track_t* trak
mp_msg(MSGT_DEMUX, MSGL_INFO, "MOV: Found MPEG4 audio Elementary Stream Descriptor atom (%d)!\n", atom_len);
if(atom_len >= 8) {
esds_t *esds = (esds_t *)malloc(sizeof(esds_t));
- if(!mp4_parse_esds(&trak->stdata[36], atom_len-8, esds)) {
+ if(esds && !mp4_parse_esds(&trak->stdata[36], atom_len-8, esds)) {
sh->i_bps = esds->avgBitrate/8;
@@ -716,7 +716,11 @@ static void lschunks(demuxer_t* demuxer,int level,off_t endpos,mov_track_t* trak
sh->codecdata = (unsigned char *)malloc(sh->codecdata_len);
memcpy(sh->codecdata, esds->decoderConfig, sh->codecdata_len);
}
- free(esds);
+ if(esds) {
+ if(esds->decoderConfig)
+ free(esds->decoderConfig);
+ free(esds);
+ }
#if 0
{ FILE* f=fopen("esds.dat","wb");
fwrite(&trak->stdata[36],atom_len-8,1,f);