diff --git a/libavformat/utils.c b/libavformat/utils.c
index 2c0f4bbc62bbfef0f5d43ca693dcc181ce3f4399..b8538c2602e535bd6e47f676159883475357b0e8 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -2865,8 +2865,10 @@ int av_write_trailer(AVFormatContext *s)
 fail:
     if(ret == 0)
        ret=url_ferror(s->pb);
-    for(i=0;i<s->nb_streams;i++)
+    for(i=0;i<s->nb_streams;i++) {
         av_freep(&s->streams[i]->priv_data);
+        av_freep(&s->streams[i]->index_entries);
+    }
     av_freep(&s->priv_data);
     return ret;
 }