avformat/asfdec_f: factor error checking out of main header parsing loop
authorJohn Adlum <john.adlum@nospam>
Wed, 1 Jul 2015 21:21:53 +0000 (23:21 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 2 Jul 2015 02:58:18 +0000 (04:58 +0200)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/asfdec_f.c

index 6dbd2b9..807df4e 100644 (file)
@@ -779,6 +779,7 @@ static int asf_read_header(AVFormatContext *s)
 
     for (;;) {
         uint64_t gpos = avio_tell(pb);
+        int ret = 0;
         ff_get_guid(pb, &g);
         gsize = avio_rl64(pb);
         print_guid(&g);
@@ -795,13 +796,9 @@ static int asf_read_header(AVFormatContext *s)
         if (gsize < 24)
             return AVERROR_INVALIDDATA;
         if (!ff_guidcmp(&g, &ff_asf_file_header)) {
-            int ret = asf_read_file_properties(s, gsize);
-            if (ret < 0)
-                return ret;
+            ret = asf_read_file_properties(s, gsize);
         } else if (!ff_guidcmp(&g, &ff_asf_stream_header)) {
-            int ret = asf_read_stream_properties(s, gsize);
-            if (ret < 0)
-                return ret;
+            ret = asf_read_stream_properties(s, gsize);
         } else if (!ff_guidcmp(&g, &ff_asf_comment_header)) {
             asf_read_content_desc(s, gsize);
         } else if (!ff_guidcmp(&g, &ff_asf_language_guid)) {
@@ -830,7 +827,6 @@ static int asf_read_header(AVFormatContext *s)
             if (!s->keylen) {
                 if (!ff_guidcmp(&g, &ff_asf_content_encryption)) {
                     unsigned int len;
-                    int ret;
                     AVPacket pkt;
                     av_log(s, AV_LOG_WARNING,
                            "DRM protected stream detected, decoding will likely fail!\n");
@@ -856,6 +852,9 @@ static int asf_read_header(AVFormatContext *s)
                 }
             }
         }
+        if (ret < 0)
+            return ret;
+
         if (avio_tell(pb) != gpos + gsize)
             av_log(s, AV_LOG_DEBUG,
                    "gpos mismatch our pos=%"PRIu64", end=%"PRId64"\n",