java.nio.BufferUnderflowException when reading a corrupted mp3 file

Issue #302 closed
Julien Voisin created an issue

I’m getting the following stacktrace when running jaudiotagger on a corrupted mp3:

Exception in thread "main" java.nio.BufferUnderflowException
    at java.nio.ByteBuffer.get(ByteBuffer.java:688)
    at java.nio.DirectByteBuffer.get(DirectByteBuffer.java:285)
    at java.nio.ByteBuffer.get(ByteBuffer.java:715)
    at org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody.read(AbstractID3v2FrameBody.java:156)
    at org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody.<init>(AbstractID3v2FrameBody.java:81)
    at org.jaudiotagger.tag.id3.framebody.FrameBodyEncrypted.<init>(FrameBodyEncrypted.java:61)
    at org.jaudiotagger.tag.id3.AbstractID3v2Frame.readEncryptedBody(AbstractID3v2Frame.java:224)
    at org.jaudiotagger.tag.id3.ID3v23Frame.read(ID3v23Frame.java:465)
    at org.jaudiotagger.tag.id3.ID3v23Frame.<init>(ID3v23Frame.java:281)
    at org.jaudiotagger.tag.id3.ID3v23Tag.readFrames(ID3v23Tag.java:579)
    at org.jaudiotagger.tag.id3.ID3v23Tag.read(ID3v23Tag.java:543)
    at org.jaudiotagger.tag.id3.ID3v23Tag.<init>(ID3v23Tag.java:308)
    at org.jaudiotagger.audio.mp3.MP3File.readV2Tag(MP3File.java:235)
    at org.jaudiotagger.audio.mp3.MP3File.<init>(MP3File.java:494)
    at org.jaudiotagger.audio.mp3.MP3FileReader.read(MP3FileReader.java:39)
    at org.jaudiotagger.audio.AudioFileIO.readFileMagic(AudioFileIO.java:387)
    at org.jaudiotagger.audio.AudioFileIO.readMagic(AudioFileIO.java:175)
    at org.jaudiotagger.fuzzers.ReadMetaFuzzer.testOneInput(ReadMetaFuzzer.java:25)
    at org.jaudiotagger.fuzzers.ReadMetaFuzzer.testOneInput(ReadMetaFuzzer.java:14)

Comments (1)

  1. IJabz repo owner

    Fixed, the issue was corrupt TYER frame indicating it has encoded data but frame size was not large enough to accomadate the extra bytes expected, now correctly gnore as invalid frame allowing file to be read and written to

  2. Log in to comment