[libav-commits] matroskadec: honor error_recognition when encountering unknown elements.

Anton Khirnov git at libav.org
Mon Jul 9 07:48:41 CEST 2012


Module: libav
Branch: master
Commit: 5b7a88f0ba160ce9ba9f625dd1a777a66244c089

Author:    Anton Khirnov <anton at khirnov.net>
Committer: Anton Khirnov <anton at khirnov.net>
Date:      Sat Jul  7 17:15:27 2012 +0200

matroskadec: honor error_recognition when encountering unknown elements.

---

 libavformat/matroskadec.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 3b78ae3..40c2eb1 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -783,8 +783,11 @@ static int ebml_parse_id(MatroskaDemuxContext *matroska, EbmlSyntax *syntax,
         matroska->num_levels > 0 &&
         matroska->levels[matroska->num_levels-1].length == 0xffffffffffffff)
         return 0;  // we reached the end of an unknown size cluster
-    if (!syntax[i].id && id != EBML_ID_VOID && id != EBML_ID_CRC32)
+    if (!syntax[i].id && id != EBML_ID_VOID && id != EBML_ID_CRC32) {
         av_log(matroska->ctx, AV_LOG_INFO, "Unknown entry 0x%X\n", id);
+        if (matroska->ctx->error_recognition & AV_EF_EXPLODE)
+            return AVERROR_INVALIDDATA;
+    }
     return ebml_parse_elem(matroska, &syntax[i], data);
 }
 



More information about the libav-commits mailing list