[FFmpeg-cvslog] avformat/apvdec: Check before access

Andreas Rheinhardt git at videolan.org
Thu May 1 00:51:16 EEST 2025


ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Mon Apr 28 11:25:26 2025 +0200| [8279d02cf1998ec324b7624dc41ed15dc2b01cae] | committer: Andreas Rheinhardt

avformat/apvdec: Check before access

The signature check would segfault in case the packet could not
be allocated or if nothing could be read.
Furthermore, read_packet callbacks are supposed to return zero
on success, yet the current code returned the size of the packet.

Reviewed-by: Mark Thompson <sw at jkqxz.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8279d02cf1998ec324b7624dc41ed15dc2b01cae
---

 libavformat/apvdec.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/libavformat/apvdec.c b/libavformat/apvdec.c
index 9f94a901ec..300ee77316 100644
--- a/libavformat/apvdec.c
+++ b/libavformat/apvdec.c
@@ -225,7 +225,9 @@ static int apv_read_packet(AVFormatContext *s, AVPacket *pkt)
     }
 
     ret = av_get_packet(s->pb, pkt, au_size);
-    pkt->flags        = AV_PKT_FLAG_KEY;
+    if (ret < 0)
+        return ret;
+    pkt->flags = AV_PKT_FLAG_KEY;
 
     signature = AV_RB32(pkt->data);
     if (signature != APV_SIGNATURE) {
@@ -233,7 +235,7 @@ static int apv_read_packet(AVFormatContext *s, AVPacket *pkt)
         return AVERROR_INVALIDDATA;
     }
 
-    return ret;
+    return 0;
 }
 
 const FFInputFormat ff_apv_demuxer = {



More information about the ffmpeg-cvslog mailing list