From 4630f80f79fa6b154ba553e0fd548353c73eda5a Mon Sep 17 00:00:00 2001 From: Tom Finegan Date: Mon, 31 Aug 2015 11:01:34 -0700 Subject: [PATCH] mkvparser: Segment::DoLoadClusterUnknownSize asserts to error checks. Change-Id: I4597416261efb9202d2307e1ac4abfeb38e7c515 --- mkvparser.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/mkvparser.cpp b/mkvparser.cpp index 467517c..69e4424 100644 --- a/mkvparser.cpp +++ b/mkvparser.cpp @@ -1251,8 +1251,8 @@ long Segment::DoLoadCluster(long long& pos, long& len) { } long Segment::DoLoadClusterUnknownSize(long long& pos, long& len) { - assert(m_pos < 0); - assert(m_pUnknownSize); + if (m_pos >= 0 || m_pUnknownSize == NULL) + return E_PARSE_FAILED; const long status = m_pUnknownSize->Parse(pos, len); @@ -1262,12 +1262,11 @@ long Segment::DoLoadClusterUnknownSize(long long& pos, long& len) { if (status == 0) // parsed a block return 2; // continue parsing - assert(status > 0); // nothing left to parse of this cluster - const long long start = m_pUnknownSize->m_element_start; - const long long size = m_pUnknownSize->GetElementSize(); - assert(size >= 0); + + if (size < 0) + return E_FILE_FORMAT_INVALID; pos = start + size; m_pos = pos;