From: James Almer <jamrial@gmail.com> To: ffmpeg-devel@ffmpeg.org Subject: Re: [FFmpeg-devel] [PATCH] avutil/hwcontext: check the null pointer input value before use it Date: Thu, 10 Feb 2022 09:27:19 -0300 Message-ID: <877663ed-2b99-be67-2ebf-9c5303870a09@gmail.com> (raw) In-Reply-To: <20220210122049.70641-1-lq@chinaffmpeg.org> On 2/10/2022 9:20 AM, Steven Liu wrote: > because the src, src->hw_frames_ctx and src->hw_frames_ctx->data can be > set to null when the user calling av_hwframe_transfer_data, this will > get crash if they are null. src can not be NULL. The doxy doesn't allow it. And if transfer_data_alloc() is called, it's because dst is "clean", and src must then have a hw_frames_ctx (The doxy explicitly states "At least one of dst/src must have an AVHWFramesContext attached"). > > Signed-off-by: Steven Liu <lq@chinaffmpeg.org> > --- > libavutil/hwcontext.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/libavutil/hwcontext.c b/libavutil/hwcontext.c > index 31c7840dba..b42a3a6d4d 100644 > --- a/libavutil/hwcontext.c > +++ b/libavutil/hwcontext.c > @@ -396,10 +396,13 @@ int av_hwframe_transfer_get_formats(AVBufferRef *hwframe_ref, > > static int transfer_data_alloc(AVFrame *dst, const AVFrame *src, int flags) > { > - AVHWFramesContext *ctx = (AVHWFramesContext*)src->hw_frames_ctx->data; > + AVHWFramesContext *ctx = NULL; > AVFrame *frame_tmp; > int ret = 0; > > + if (!src || !src->hw_frames_ctx || !src->hw_frames_ctx->data) > + return AVERROR(EINVAL); > + ctx = (AVHWFramesContext*)src->hw_frames_ctx->data; > frame_tmp = av_frame_alloc(); > if (!frame_tmp) > return AVERROR(ENOMEM); _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
next prev parent reply other threads:[~2022-02-10 12:27 UTC|newest] Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-02-10 12:20 Steven Liu 2022-02-10 12:22 ` Steven Liu 2022-02-10 12:27 ` James Almer [this message] 2022-02-11 1:43 ` Steven Liu 2022-02-11 2:01 ` James Almer 2022-02-11 2:03 ` Steven Liu 2022-02-11 2:10 ` James Almer 2022-02-11 2:16 ` Steven Liu 2022-02-11 2:39 ` James Almer
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=877663ed-2b99-be67-2ebf-9c5303870a09@gmail.com \ --to=jamrial@gmail.com \ --cc=ffmpeg-devel@ffmpeg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git