I'm seeing a crash when reading an OGG/Vorbis file. I'm using OGG 1.0
/ Vorbis 1.0.
The crash occurs in _vds_shared_init because the passed in vorbis_info
*vi points to a structure containing all 0s (and thus crashes on the
line
b->modebits = ilog2(ci->modes);
as ci is NULL.
Following the stack, I see that _vds_shared_init is called by
vorbis_synthesis_init which is called by _make_decode_ready by the line
vorbis_syntesis_init(&vf->vd, vf->vi + vf->current_link);
At this point in the vf structure, links = 7. Looking at the vb->vi
array I see that elements 0 and 5 are initialized structures, but 1, 2,
3, 4, and 6 are all 0.
My company provides a tool that reads and writes OGG/Vorbis files and
the file that is causing this crash is from one of our customers. At
this point, I don't know where the file came from or how it was
created. I suppose it could be a corrupted or malformed file.
Any help would be greatly appreciated.
-Stevo Brock
Skyward Studios
www.monkey-tools.com