Sanity-check codecdata_len, fixes crash in libfaad due to failed malloc for

http://images.apple.com/movies/us/hd_gallery/gl1800/480p/the_brothers_grimm_m480pa.mov


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16612 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
reimar 2005-09-27 11:21:13 +00:00
parent e5352c35b6
commit 47b5a39d38
1 changed files with 3 additions and 0 deletions

View File

@ -662,6 +662,7 @@ static void lschunks(demuxer_t* demuxer,int level,off_t endpos,mov_track_t* trak
// 32 char[4] atom type (fourc charater code -> esds)
// 36 char[] atom data (len=size-8)
// TODO: fix parsing for files using version 2.
trak->samplebytes=sh->samplesize=char2short(trak->stdata,18)/8;
trak->nchannels=sh->channels=char2short(trak->stdata,16);
/*printf("MOV: timescale: %d samplerate: %d durmap: %d (%d) -> %d (%d)\n",
@ -711,8 +712,10 @@ 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, &trak->stdata[52+char2int(trak->stdata,52)], sh->codecdata_len);
} else {
if (len > 8 && len + 44 < trak->stdata_len) {
sh->codecdata_len = len-8;
sh->codecdata = trak->stdata+44+8;
}
}
}
}