We recently got a file that has some upper element that violates its size boundaries.
When calling EbmlElement::FindNextElement() one can pass the limit to which the elements can be found with MaxDataSize. However that value is not used if we read the next upper element. There's a check on the value but if it's a binary or master element with no constraints it will be valid no matter what, and returned because UpperLevel > 0.
We recently got a file that has some upper element that violates its size boundaries.
When calling
EbmlElement::FindNextElement()one can pass the limit to which the elements can be found withMaxDataSize. However that value is not used if we read the next upper element. There's a check on the value but if it's a binary or master element with no constraints it will be valid no matter what, and returned becauseUpperLevel > 0.