Flac reader should check StreamInfo block is too small to read header details

Issue #340 resolved
IJabz repo owner created an issue

Get stacktrace

Java.nio.BufferUnderflowException
at java.base/java.nio.Buffer.nextGetIndex(Buffer.java:699)
at java.base/java.nio.HeapByteBuffer.getShort(HeapByteBuffer.java:399)
at org.jaudiotagger.audio.flac.metadatablock.MetadataBlockDataStreamInfo.<init>(MetadataBlockDataStreamInfo.java:79)
at org.jaudiotagger.audio.flac.FlacInfoReader.read(FlacInfoReader.java:70)
at org.jaudiotagger.audio.flac.FlacFileReader.getEncodingInfo(FlacFileReader.java:40)
at org.jaudiotagger.audio.generic.AudioFileReader2.read(AudioFileReader2.java:60)
at org.jaudiotagger.audio.AudioFileIO.readFile(AudioFileIO.java:357)
at org.jaudiotagger.audio.AudioFileIO.read(AudioFileIO.java:193)


So reads header size and grabs bytes but only header size is 4 instead of 34 so then when trys to read maxBlockSize it fails. We should determine header size is too small earlier on and throw sensible IOException message.

Comments (1)

  1. Log in to comment