diff --git a/libavformat/asfdec.c b/libavformat/asfdec.c index 37d91e0c757462a04daaabaed12a0cde05d77d7e..72c59168a891d07856976d3a5d5ed1815040c6f2 100644 --- a/libavformat/asfdec.c +++ b/libavformat/asfdec.c @@ -1453,10 +1453,12 @@ static int asf_read_close(AVFormatContext *s) ASFContext *asf = s->priv_data; int i; - for (i = 0; i < asf->nb_streams; i++) { - av_free_packet(&asf->asf_st[i]->pkt.avpkt); - av_freep(&asf->asf_st[i]); + for (i = 0; i < ASF_MAX_STREAMS; i++) { av_dict_free(&asf->asf_sd[i].asf_met); + if (i < asf->nb_streams) { + av_free_packet(&asf->asf_st[i]->pkt.avpkt); + av_freep(&asf->asf_st[i]); + } } asf->nb_streams = 0;