diff options
author | iive <iive@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-04-06 20:04:02 +0000 |
---|---|---|
committer | iive <iive@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-04-06 20:04:02 +0000 |
commit | 64159b23f862d9467319ef450a9f1c9c7267027b (patch) | |
tree | d28c3d1adb65df7af9b3087538beb18140deb489 /libmpdemux | |
parent | e34e980420f8c55418105299544cdf125cf3bf29 (diff) |
Limit the number of entires to the amount that does fit into the chunk.
the function need rewrite as it assumes quite many things that are not guaranteed by the specifications.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18050 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux')
-rw-r--r-- | libmpdemux/aviheader.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libmpdemux/aviheader.c b/libmpdemux/aviheader.c index 9f95ca339b..e19e3198c1 100644 --- a/libmpdemux/aviheader.c +++ b/libmpdemux/aviheader.c @@ -224,6 +224,11 @@ while(1){ memset(s->dwReserved, 0, 3*4); print_avisuperindex_chunk(s,MSGL_V); + + if( ((chunksize/4)/s->wLongsPerEntry) < s->nEntriesInUse){ + mp_msg (MSGT_HEADER, MSGL_WARN, "Broken super index chunk\n"); + s->nEntriesInUse = (chunksize/4)/s->wLongsPerEntry; + } // Check and fix this useless crap if(s->wLongsPerEntry != sizeof (avisuperindex_entry)/4) { |