PR #22878 opened by Marvin Scholz (ePirat)
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22878
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22878.patch


>From 1a8bfc56c86937e3d7e739c7c7d462232baf1a95 Mon Sep 17 00:00:00 2001
From: Marvin Scholz <[email protected]>
Date: Tue, 21 Apr 2026 22:12:05 +0200
Subject: [PATCH 1/2] avutil: hdr_dynamic_metadata: handle allocation failure

Handle allocation failure properly in
av_dynamic_hdr_smpte2094_app5_from_t35.

Fixes Coverity issue #1691448
---
 libavutil/hdr_dynamic_metadata.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/libavutil/hdr_dynamic_metadata.c b/libavutil/hdr_dynamic_metadata.c
index 5b8f3ea87d..4505786119 100644
--- a/libavutil/hdr_dynamic_metadata.c
+++ b/libavutil/hdr_dynamic_metadata.c
@@ -441,6 +441,9 @@ int 
av_dynamic_hdr_smpte2094_app5_from_t35(AVDynamicHDRSmpte2094App5 *s, const u
         return AVERROR(ENOMEM);
 
     uint8_t *padded_data = av_mallocz(padded_size);
+    if (!padded_data)
+        return AVERROR(ENOMEM);
+
     memcpy(padded_data, data, size);
     ret = init_get_bits8(gb, padded_data, size);
     if (ret < 0)
-- 
2.52.0


>From 9002ce393777ce5a9dc023e3f5b9eb425cd03786 Mon Sep 17 00:00:00 2001
From: Marvin Scholz <[email protected]>
Date: Tue, 21 Apr 2026 22:14:01 +0200
Subject: [PATCH 2/2] avutil: hdr_dynamic_metadata: fix error code

When s is NULL in av_dynamic_hdr_smpte2094_app5_from_t35, that's not an
allocation error but just invalid API usage. If there is any allocation
failure beforehand that would lead to this, the caller has to check it,
like is already done in all usages of this function in FFmpeg itself.
---
 libavutil/hdr_dynamic_metadata.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavutil/hdr_dynamic_metadata.c b/libavutil/hdr_dynamic_metadata.c
index 4505786119..e8987f836d 100644
--- a/libavutil/hdr_dynamic_metadata.c
+++ b/libavutil/hdr_dynamic_metadata.c
@@ -438,7 +438,7 @@ int 
av_dynamic_hdr_smpte2094_app5_from_t35(AVDynamicHDRSmpte2094App5 *s, const u
     size_t padded_size = size + AV_INPUT_BUFFER_PADDING_SIZE;
 
     if (!s)
-        return AVERROR(ENOMEM);
+        return AVERROR(EINVAL);
 
     uint8_t *padded_data = av_mallocz(padded_size);
     if (!padded_data)
-- 
2.52.0

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

Reply via email to