[FFmpeg-devel] [PATCH 1/3] lavf/vividas: check avformat_new_stream() return

Andreas Rheinhardt andreas.rheinhardt at gmail.com
Thu Nov 28 16:08:00 EET 2019


Jun Zhao:
> From: Jun Zhao <barryjzhao at tencent.com>
> 
> check avformat_new_stream() return.
> 
> Signed-off-by: Jun Zhao <barryjzhao at tencent.com>
> ---
>  libavformat/vividas.c |    4 ++++
>  1 files changed, 4 insertions(+), 0 deletions(-)
> 
> diff --git a/libavformat/vividas.c b/libavformat/vividas.c
> index f20af3d..16642c0 100644
> --- a/libavformat/vividas.c
> +++ b/libavformat/vividas.c
> @@ -319,6 +319,8 @@ static int track_header(VividasDemuxContext *viv, AVFormatContext *s,  uint8_t *
>  
>      for (i = 0; i < num_video; i++) {
>          AVStream *st = avformat_new_stream(s, NULL);
> +        if (!st)
> +            return AVERROR(ENOMEM);
>  
>          st->id = i;
>  
> @@ -352,6 +354,8 @@ static int track_header(VividasDemuxContext *viv, AVFormatContext *s,  uint8_t *
>      for(i=0;i<viv->num_audio;i++) {
>          int q;
>          AVStream *st = avformat_new_stream(s, NULL);
> +        if (!st)
> +            return AVERROR(ENOMEM);
>  
>          st->id = num_video + i;
>  
> 
Actually, the AVIOContext pb leaks when these errors happen. But don't
bother updating your patch, because pb should actually not be
allocated at all: I'll send a patch using ffio_init_context soon.

- Andreas


More information about the ffmpeg-devel mailing list