diff --git a/libavformat/asfdec_o.c b/libavformat/asfdec_o.c index ab3c7fce07..283807ad2e 100644 --- a/libavformat/asfdec_o.c +++ b/libavformat/asfdec_o.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;