You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
moovin contains calls to parse() and modifies the value of g_atom,
which is a global, static variable. When moovin returns, the position
of the g_atom pointer has thus changed. For example it might be
pointing to the last element of a trak[], meaning that g_atom++
(mp4read.c:765) pushes it out-of-bounds.
the result is a buffer-over-read later at line 767.
fix: moovin should not modify its caller's g_atom. Save g_atom's value
at the beginning of moovin calls and reset it before returning.
fixesknik0#34.
hlef
added a commit
to hlef/faad2
that referenced
this issue
Aug 10, 2019
moov blocks contain MP4 file metadata. mp4read.c parses moov blocks
using moovin, which recursively calls parse to process subblocks. In
order to use the parse function, moovin modifies the value of g_atom,
which is a global, static variable. When moovin returns, the position
of the g_atom pointer has thus changed. For example it might be
pointing to the last element of a trak[], meaning that g_atom++
pushes it out-of-bounds.
the result is a buffer-over-read later at line 767.
fix: moovin should not modify g_atom from the point of view of its
caller. Save g_atom's value at the beginning of moovin calls and reset
it before returning.
fixesknik0#34.
Dear FAAD2 developers,
Looks like this issue didn't have a bug report yet. Originally reported on sourceforge, still affecting the master.
Link to poc.
I have a patch pending, will PR soon. This will also address #13.
The text was updated successfully, but these errors were encountered: