summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libmpdemux/demux_real.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libmpdemux/demux_real.c b/libmpdemux/demux_real.c
index 55e4edbf0f..f124077f31 100644
--- a/libmpdemux/demux_real.c
+++ b/libmpdemux/demux_real.c
@@ -245,6 +245,11 @@ static void add_index_item(demuxer_t *demuxer, int stream_id, int timestamp, int
priv->index_malloc_size[stream_id] = 2048;
else
priv->index_malloc_size[stream_id] += priv->index_malloc_size[stream_id] / 2;
+ // in case we have a really large chunk...
+ if (priv->index_table_size[stream_id] >=
+ priv->index_malloc_size[stream_id])
+ priv->index_malloc_size[stream_id] =
+ priv->index_table_size[stream_id] + 1;
priv->index_table[stream_id] = realloc(priv->index_table[stream_id], priv->index_malloc_size[stream_id]*sizeof(priv->index_table[0][0]));
}
if (priv->index_table_size[stream_id] > 0)