[FFmpeg-devel] [PATCH] avformat/flacdec: Reorder allocations to avoid leak on error

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Sun May 19 12:57:27 EEST 2024


Andreas Rheinhardt:
> Fixes Coverity issue #1591795.
> 
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
> ---
>  libavformat/flacdec.c | 11 +++++------
>  1 file changed, 5 insertions(+), 6 deletions(-)
> 
> diff --git a/libavformat/flacdec.c b/libavformat/flacdec.c
> index 3d35da5fea..3c317acaee 100644
> --- a/libavformat/flacdec.c
> +++ b/libavformat/flacdec.c
> @@ -283,12 +283,6 @@ static av_unused int64_t flac_read_timestamp(AVFormatContext *s, int stream_inde
>      if (avio_seek(s->pb, *ppos, SEEK_SET) < 0)
>          return AV_NOPTS_VALUE;
>  
> -    parser = av_parser_init(st->codecpar->codec_id);
> -    if (!parser){
> -        return AV_NOPTS_VALUE;
> -    }
> -    parser->flags |= PARSER_FLAG_USE_CODEC_TS;
> -
>      if (!flac->parser_dec) {
>          flac->parser_dec = avcodec_alloc_context3(NULL);
>          if (!flac->parser_dec)
> @@ -299,6 +293,11 @@ static av_unused int64_t flac_read_timestamp(AVFormatContext *s, int stream_inde
>              return ret;
>      }
>  
> +    parser = av_parser_init(st->codecpar->codec_id);
> +    if (!parser)
> +        return AV_NOPTS_VALUE;
> +    parser->flags |= PARSER_FLAG_USE_CODEC_TS;
> +
>      for (;;){
>          uint8_t *data;
>          int size;

Will apply this patch tomorrow unless there are objections.

- Andreas



More information about the ffmpeg-devel mailing list