PR #23025 opened by James Almer (jamrial)
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23025
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23025.patch

Should fix issue #23010


>From f0ab92efc7d1cd62325a6b1c0a25b7640cdabba7 Mon Sep 17 00:00:00 2001
From: James Almer <[email protected]>
Date: Tue, 5 May 2026 16:25:57 -0300
Subject: [PATCH] avformat/nal: take into account removed zero bytes when
 calculating buffer size in nal_parse_units()

Should fix issue #23010

Signed-off-by: James Almer <[email protected]>
---
 libavformat/nal.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/libavformat/nal.c b/libavformat/nal.c
index f94dc90995..17b0ed1b7c 100644
--- a/libavformat/nal.c
+++ b/libavformat/nal.c
@@ -87,10 +87,10 @@ static int nal_parse_units(AVIOContext *pb, NALUList *list,
             break;
 
         nal_end = ff_nal_find_startcode(nal_start, end);
+        size_t nalu_size = nal_end - nal_start;
+        while (nalu_size > 0 && nal_start[nalu_size - 1] == 0)
+            --nalu_size;
         if (pb) {
-            ptrdiff_t nalu_size = nal_end - nal_start;
-            while (nalu_size > 0 && nal_start[nalu_size - 1] == 0)
-                --nalu_size;
             avio_wb32(pb, nalu_size);
             avio_write(pb, nal_start, nalu_size);
         } else if (list->nb_nalus >= nalu_limit) {
@@ -102,9 +102,9 @@ static int nal_parse_units(AVIOContext *pb, NALUList *list,
                 return AVERROR(ENOMEM);
             list->nalus = tmp;
             tmp[list->nb_nalus++] = (NALU){ .offset = nal_start - p,
-                                            .size   = nal_end - nal_start };
+                                            .size   = nalu_size };
         }
-        size += 4 + nal_end - nal_start;
+        size += 4 + nalu_size;
         nal_start = nal_end;
     }
     return size;
-- 
2.52.0

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

Reply via email to