Introduction
------------
This patch was inspired by a file I encountered that included an id3v2 frame filled
with all ones. When parsing this frame, the id3lib code saw that the 'compressed'
flag was active. Then it read the next four bytes which is supposed to contain the
uncompressed size. Finally, the program crashed when id3lib attempted to allocate a
4GB buffer to uncompress the frame to.
Resolution
----------
This patch adds some code that skips the frame if it reports that its size is larger
than 16MB. According to http://www.id3.org/easy.html, that is the maximum frame
size.
The patch also adds some exception handling code that allows the library to skip
frames that cause exceptions which would normally crash the entire program.