63 lines
2.6 KiB
Markdown
63 lines
2.6 KiB
Markdown
# Group faulty
|
|
|
|
This group contains files with invalid data and corrupted files
|
|
that might trigger crashes in a decoder. A decoder should not
|
|
crash or freeze reading these files. Read the README.txt in
|
|
the directory faulty for details on each file.
|
|
|
|
|
|
## Manifest
|
|
|
|
- File 01 has a streaminfo metadata block that lists the wrong
|
|
maximum blocksize for the file. The file has a fixed
|
|
blocksize of 16384 samples, but the streaminfo metadata block
|
|
says the maximum blocksize is 4096. When a decoder
|
|
initializes buffers for a blocksize of 4096 and tries to
|
|
decode a block with 16384 samples, it might overrun a buffer
|
|
|
|
- File 02 has a streaminfo metadata block that lists the wrong
|
|
maximum framesize for the file. The file has an actual
|
|
maximum framesize of 8846 byte, but the streaminfo metadata
|
|
block says the maximum framesize is 654 byte. When a decoder
|
|
initializes buffers for a frames of at most 654 byte and
|
|
tries to read a frame of 8846 byte, it might overrun a buffer
|
|
|
|
- File 03 has a streaminfo metadata block that lists the wrong
|
|
bit depth for the file. It says the bit depth is 24, but the
|
|
actual bit depth of all frames is 16.
|
|
|
|
- File 04 has a streaminfo metadata block that lists the wrong
|
|
number of channels for the file. It says the number of
|
|
channels is 5, but the actual number of channels is 1.
|
|
|
|
- File 05 has a streaminfo metadata block that lists the wrong
|
|
total number of samples. It says the number of samples is
|
|
39842, while the actual total number of samples is 109487
|
|
|
|
- File 06 doesn't have a streaminfo metadata block, despite
|
|
having other metadata blocks, unlike the files 10 and 11 in
|
|
the 'uncommon' set of files, which start directly at a frame
|
|
header. It does have two other metadata blocks, a vorbis
|
|
comment block and a padding block
|
|
|
|
- File 07 has a streaminfo metadata block that is not the first
|
|
metadata block of the file. It is being preceded by two other
|
|
metadata blocks, a vorbis comment block and a padding block
|
|
|
|
- File 08 has a blocksize of 65536, which is representable by
|
|
the frame header but not by the streaminfo metadata block,
|
|
and is thus invalid
|
|
|
|
- File 09 has a blocksize of 1, which is not allowed for all
|
|
but the last frame of a file
|
|
|
|
- File 10 has a vorbis comment metadata block with invalid
|
|
contents. The block has a correct overall length and has a
|
|
single tag, but it states there are 10 tags, which means a
|
|
parser could overread the block if it does not check for
|
|
validity.
|
|
|
|
- File 11 has an incorrect metadata block length, which leads
|
|
to the parser searching for the next metadata block reading
|
|
garbage.
|