diff mbox series

[FFmpeg-devel,2/2] fftools/ffmpeg_enc: assert frame->format isn't NONE before use

Message ID tencent_C166F5A7CC6A8C93051C580B89260B10B006@qq.com
State New
Headers show
Series [FFmpeg-devel,1/2] fftools/ffmpeg_filter: fix null pointer dereference | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Zhao Zhili Dec. 17, 2023, 11:01 a.m. UTC
From: Zhao Zhili <zhilizhao@tencent.com>

Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
---
 fftools/ffmpeg_enc.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Anton Khirnov Dec. 18, 2023, 11:21 a.m. UTC | #1
Quoting Zhao Zhili (2023-12-17 12:01:09)
> From: Zhao Zhili <zhilizhao@tencent.com>
> 
> Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
> ---
>  fftools/ffmpeg_enc.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/fftools/ffmpeg_enc.c b/fftools/ffmpeg_enc.c
> index 9141dab6a4..ac38e8db75 100644
> --- a/fftools/ffmpeg_enc.c
> +++ b/fftools/ffmpeg_enc.c
> @@ -206,6 +206,7 @@ int enc_open(void *opaque, const AVFrame *frame)
>  
>      switch (enc_ctx->codec_type) {
>      case AVMEDIA_TYPE_AUDIO:
> +        av_assert0(frame->format != AV_SAMPLE_FMT_NONE);
>          enc_ctx->sample_fmt     = frame->format;
>          enc_ctx->sample_rate    = frame->sample_rate;
>          ret = av_channel_layout_copy(&enc_ctx->ch_layout, &frame->ch_layout);
> @@ -227,6 +228,7 @@ int enc_open(void *opaque, const AVFrame *frame)
>              av_mul_q(ost->frame_aspect_ratio, (AVRational){ enc_ctx->height, enc_ctx->width }) :
>              frame->sample_aspect_ratio;
>  
> +        av_assert0(frame->format != AV_PIX_FMT_NONE);

I'd prefer if you did this at the top of the block, right after case.
Can also check dimensions for video and sample rate/channel layout for
audio.
diff mbox series

Patch

diff --git a/fftools/ffmpeg_enc.c b/fftools/ffmpeg_enc.c
index 9141dab6a4..ac38e8db75 100644
--- a/fftools/ffmpeg_enc.c
+++ b/fftools/ffmpeg_enc.c
@@ -206,6 +206,7 @@  int enc_open(void *opaque, const AVFrame *frame)
 
     switch (enc_ctx->codec_type) {
     case AVMEDIA_TYPE_AUDIO:
+        av_assert0(frame->format != AV_SAMPLE_FMT_NONE);
         enc_ctx->sample_fmt     = frame->format;
         enc_ctx->sample_rate    = frame->sample_rate;
         ret = av_channel_layout_copy(&enc_ctx->ch_layout, &frame->ch_layout);
@@ -227,6 +228,7 @@  int enc_open(void *opaque, const AVFrame *frame)
             av_mul_q(ost->frame_aspect_ratio, (AVRational){ enc_ctx->height, enc_ctx->width }) :
             frame->sample_aspect_ratio;
 
+        av_assert0(frame->format != AV_PIX_FMT_NONE);
         enc_ctx->pix_fmt = frame->format;
 
         if (ost->bits_per_raw_sample)