[FFmpeg-devel] [PATCH] avformat/iff: fix EOF check

James Almer jamrial at gmail.com
Tue Aug 5 01:54:41 EEST 2025


The check to return on EOF should not be inside a block that will not be entered after reaching EOF.
Should fix "libavcodec/bytestream.h:144:27: runtime error: applying zero offset to null pointer".

Signed-off-by: James Almer <jamrial at gmail.com>
---
 libavformat/iff.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/libavformat/iff.c b/libavformat/iff.c
index 4ff10beb38..44ba5a9023 100644
--- a/libavformat/iff.c
+++ b/libavformat/iff.c
@@ -969,9 +969,6 @@ static int iff_read_packet(AVFormatContext *s,
         uint32_t chunk_id, chunk_id2;
 
         while (!avio_feof(pb)) {
-            if (avio_feof(pb))
-                return AVERROR_EOF;
-
             orig_pos  = avio_tell(pb);
             chunk_id  = avio_rl32(pb);
             data_size = avio_rb32(pb);
@@ -988,6 +985,9 @@ static int iff_read_packet(AVFormatContext *s,
                 avio_skip(pb, data_size);
             }
         }
+        if (pb->eof_reached)
+            return AVERROR_EOF;
+
         ret = av_get_packet(pb, pkt, data_size);
         pkt->stream_index = iff->video_stream_index;
         pkt->pos = orig_pos;
-- 
2.50.1



More information about the ffmpeg-devel mailing list