Skip to content

Conversation

@robUx4
Copy link
Contributor

@robUx4 robUx4 commented Mar 1, 2024

And rework the skipping of unknown/infinite length master elements.

With a bit more comments it's clearer what each part does. The handling of going to a parent level seems bogus.

robUx4 added 5 commits March 1, 2024 16:18
We should be skipping data with the actual EbmlSemanticContext of that element.
No other code was executed after bEndFound was set to true to exist the loop.
We may find an upper level element in an unknown length master element.

We skip its data as well, until there's nothing to skip.
This is very suspicious.
We don't need to use the global context that contains the list of global elements.
The global element cannot be a have an unknown size and will just skip the data and return nullptr.
Either the global element needs to be found in the list of elements, or though the
callback. If the extra callback points to itself we may loop recursively on it.
Copy link
Contributor

@mbunkus mbunkus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mkvextract segfaults when reading certain files with these changes. There seems to be an infinite recursion happening with EbmlElement::SkipData() calling itself directly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants