summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libmpdemux/aviheader.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/libmpdemux/aviheader.c b/libmpdemux/aviheader.c
index 592d71ffdb..9f95ca339b 100644
--- a/libmpdemux/aviheader.c
+++ b/libmpdemux/aviheader.c
@@ -225,7 +225,12 @@ while(1){
print_avisuperindex_chunk(s,MSGL_V);
- msize = sizeof (uint32_t) * s->wLongsPerEntry * s->nEntriesInUse;
+ // Check and fix this useless crap
+ if(s->wLongsPerEntry != sizeof (avisuperindex_entry)/4) {
+ mp_msg (MSGT_HEADER, MSGL_WARN, "Broken super index chunk size: %u\n",s->wLongsPerEntry);
+ s->wLongsPerEntry = sizeof(avisuperindex_entry)/4;
+ }
+ msize = sizeof (avisuperindex_entry) * s->nEntriesInUse;
s->aIndex = malloc(msize);
memset (s->aIndex, 0, msize);
s->stdidx = malloc (s->nEntriesInUse * sizeof (avistdindex_chunk));