diff --git a/libavformat/oggenc.c b/libavformat/oggenc.c index 06021c4f4b..d3ae07351d 100644 --- a/libavformat/oggenc.c +++ b/libavformat/oggenc.c @@ -740,6 +740,8 @@ static int ogg_write_trailer(AVFormatContext *s) static void ogg_free(AVFormatContext *s) { + OGGContext *ogg = s->priv_data; + OGGPageList *p = ogg->page_list; int i; for (i = 0; i < s->nb_streams; i++) { @@ -756,6 +758,13 @@ static void ogg_free(AVFormatContext *s) av_freep(&oggstream->header[1]); av_freep(&st->priv_data); } + + while (p) { + OGGPageList *next = p->next; + av_free(p); + p = next; + } + ogg->page_list = NULL; } #if CONFIG_OGG_MUXER