[FFmpeg-devel] [PATCH 4/4] avformat/oggenc: free buffered page lists while uninitializing the muxer

Andreas Rheinhardt andreas.rheinhardt at gmail.com
Mon Oct 21 11:34:00 EEST 2019


James Almer:
> If the trailer is never writen, there could be buffered pages that would leak.
> 
Typo ("writen") in the commit message.

> Signed-off-by: James Almer <jamrial at gmail.com>
> ---
>  libavformat/oggenc.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/libavformat/oggenc.c b/libavformat/oggenc.c
> index 06021c4f4b..77aa2518dc 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,12 @@ 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;
> +    }
>  }
>  
>  #if CONFIG_OGG_MUXER
> You could also set ogg->page_list to NULL in order not to leave any
dangling pointers behind.

- Andreas


More information about the ffmpeg-devel mailing list