diff --git a/libavformat/segafilm.c b/libavformat/segafilm.c
index f8b3eee3c0d107dca48641c88d4506328c20fb7e..44fa683a719ac8b964b407fd52e432fd037b8987 100644
--- a/libavformat/segafilm.c
+++ b/libavformat/segafilm.c
@@ -199,7 +199,7 @@ static int film_read_header(AVFormatContext *s)
     film->sample_count = AV_RB32(&scratch[12]);
     if(film->sample_count >= UINT_MAX / sizeof(film_sample))
         return -1;
-    film->sample_table = av_malloc(film->sample_count * sizeof(film_sample));
+    film->sample_table = av_malloc_array(film->sample_count, sizeof(film_sample));
     if (!film->sample_table)
         return AVERROR(ENOMEM);