summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libmpdemux/demux_mkv.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libmpdemux/demux_mkv.c b/libmpdemux/demux_mkv.c
index 21dc246f7f..0804dcf5bb 100644
--- a/libmpdemux/demux_mkv.c
+++ b/libmpdemux/demux_mkv.c
@@ -213,7 +213,10 @@ static void grow_array(void *arrayp, int nelem, size_t elsize) {
void *oldp = *array;
if (nelem & 31)
return;
- *array = realloc(*array, (nelem + 32) * elsize);
+ if (nelem > UINT_MAX / elsize - 32)
+ *array = NULL;
+ else
+ *array = realloc(*array, (nelem + 32) * elsize);
if (!*array)
free(oldp);
}