[FFmpeg-cvslog] lavf/ffmdec: return proper error code in ffm2_read_header()

Stefano Sabatini git at videolan.org
Fri Sep 5 11:40:38 CEST 2014


ffmpeg | branch: master | Stefano Sabatini <stefasab at gmail.com> | Mon Sep  1 14:04:54 2014 +0200| [6f0fc1a96bd436a619de4c9ed33dec8db6d97c52] | committer: Stefano Sabatini

lavf/ffmdec: return proper error code in ffm2_read_header()

Also log an error message in case of invalid packet size.

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

 libavformat/ffmdec.c |   14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/libavformat/ffmdec.c b/libavformat/ffmdec.c
index f8fee2f..448762b 100644
--- a/libavformat/ffmdec.c
+++ b/libavformat/ffmdec.c
@@ -236,10 +236,16 @@ static int ffm2_read_header(AVFormatContext *s)
     AVStream *st;
     AVIOContext *pb = s->pb;
     AVCodecContext *codec;
+    int ret;
 
     ffm->packet_size = avio_rb32(pb);
-    if (ffm->packet_size != FFM_PACKET_SIZE)
+    if (ffm->packet_size != FFM_PACKET_SIZE) {
+        av_log(s, AV_LOG_ERROR, "Invalid packet size %d, expected size was %d\n",
+               ffm->packet_size, FFM_PACKET_SIZE);
+        ret = AVERROR_INVALIDDATA;
         goto fail;
+    }
+
     ffm->write_index = avio_rb64(pb);
     /* get also filesize */
     if (pb->seekable) {
@@ -266,8 +272,10 @@ static int ffm2_read_header(AVFormatContext *s)
             break;
         case MKBETAG('C', 'O', 'M', 'M'):
             st = avformat_new_stream(s, NULL);
-            if (!st)
+            if (!st) {
+                ret = AVERROR(ENOMEM);
                 goto fail;
+            }
 
             avpriv_set_pts_info(st, 64, 1, 1000000);
 
@@ -359,7 +367,7 @@ static int ffm2_read_header(AVFormatContext *s)
     return 0;
  fail:
     ffm_close(s);
-    return -1;
+    return ret;
 }
 
 static int ffm_read_header(AVFormatContext *s)



More information about the ffmpeg-cvslog mailing list