diff --git a/tools/ismindex.c b/tools/ismindex.c
index d6386ac17d918c7867d8e9d2e579fa4c9192060b..47a148ccf6f941d87ffd3a70fbfd550f550a9d05 100644
--- a/tools/ismindex.c
+++ b/tools/ismindex.c
@@ -532,8 +532,9 @@ static int handle_file(struct Tracks *tracks, const char *file, int split,
             err = AVERROR(ENOMEM);
             goto fail;
         }
-        temp = av_realloc(tracks->tracks,
-                          sizeof(*tracks->tracks) * (tracks->nb_tracks + 1));
+        temp = av_realloc_array(tracks->tracks,
+                                tracks->nb_tracks + 1,
+                                sizeof(*tracks->tracks));
         if (!temp) {
             av_free(track);
             err = AVERROR(ENOMEM);