[PR] libavcodec/decode: fix crash on incompatible codec (PR #23864)

wassim-devel via ffmpeg-devel <[email protected]> Tue, 21 Jul 2026 09:46:47 -0000
Newsgroups gmane.comp.video.ffmpeg.devel
Message-ID <178462720805.59.15449270666920142179@29965ddac10e>
PR #23864 opened by wassim-devel
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23864
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23864.patch

# Summary of changes

Currently, when `avcodec_get_hw_frames_parameters` is passed a codec without hardware acceleration, it tries to dereference `hw_configs` without checking if it is NULL

This PR adds a check to return `AVERROR(ENOENT)` in case an incompatible codec is passed to `avcodec_get_hw_frames_parameters`

The documentation says: 

> AVERROR(ENOENT): the decoder does not support this functionality. Setup is always manual, or it is a decoder which does not support setting AVCodecContext.hw_frames_ctx at all, or it is a software format. 

So it is understood that `AVERROR(ENOENT)` should be returned in that case


>From e6d9d1a6eb7a7e26ca427bbc84fded14468e3431 Mon Sep 17 00:00:00 2001
From: Wassim Lalaoui <[email protected]>
Date: Tue, 21 Jul 2026 11:37:28 +0200
Subject: [PATCH] libavcodec/decode: fix crash on incompatible codec

---
 libavcodec/decode.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index ba6ff8a9fd..ec868199a8 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -1128,6 +1128,9 @@ int avcodec_get_hw_frames_parameters(AVCodecContext *avctx,
     int i, ret;
     bool clean_priv_data = false;
 
+    if (!ffcodec(avctx->codec)->hw_configs)
+        return AVERROR(ENOENT);
+
     for (i = 0;; i++) {
         hw_config = ffcodec(avctx->codec)->hw_configs[i];
         if (!hw_config)
-- 
2.52.0

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]