Filename Description
1bpp-no-palette.bmp A bitmap that has 1 bit per pixel and no palette. This is technically invalid, but a bitmap processor could default to black and white.
1bpp-pixeldata-cropped.bmp A 1 bpp bitmap that ends in the middle of the pixel data. This tests that what happens when a call to fread() fails. This bitmap processor should probably process the data that it does have AND display a diagnostic.
24bpp-pixeldata-cropped.bmp A 24 bpp bitmap that ends in the middle of the pixel data. This tests that what happens when a call to fread() fails. This bitmap processor should probably process the data that it does have AND display a diagnostic.
32bpp-pixeldata-cropped.bmp A 32 bpp bitmap that ends in the middle of the pixel data. This tests that what happens when a call to fread() fails. This bitmap processor should probably process the data that it does have AND display a diagnostic.
4bpp-no-palette.bmp A bitmap that has 4 bit per pixel and no palette. This is an invalid bitmap, but a bitmap processor could use default colors.
4bpp-pixeldata-cropped.bmp An 4 bpp bitmap that ends in the middle of the pixel data. This tests that what happens when a call to fread() fails. This bitmap processor should probably process the data that it does have AND display a diagnostic.
555-pixeldata-cropped.bmp A 5-5-5 16 bpp bitmap that ends in the middle of the pixel data. This tests that what happens when a call to fread() fails. This bitmap processor should probably process the data that it does have AND display a diagnostic.
8bpp-colorsimportant-large.bmp An 8 bpp bitmap with five colors, but a very large 'biColorsImportant' field. This is invalid--biColorsImportant shouldn't exceed biColorsUsed.
8bpp-colorsimportant-negative.bmp An 8 bpp bitmap with a negative 'biColorsImportant' field. This is invalid--biColorsImportant can't be below 0.
8bpp-colorsused-large.bmp An 8 bpp bitmap with a very large 'biColorsUsed' field. This is invalid--biColorsImportant shouldn't exceed 256. This attempts to trick the bitmap processor into accessing invalid memory.
8bpp-colorsused-negative.bmp An 8 bpp bitmap with a negative 'biColorsUsed' field. This is invalid--biColorsImportant can't be below 0. This attempts to trick the bitmap processor into accessing invalid memory.
8bpp-no-palette.bmp A bitmap that has 8 bits per pixel and no palette. This is an invalid bitmap, but a bitmap processor could use default colors.
8bpp-pixeldata-cropped.bmp An 8 bpp bitmap that ends in the middle of the pixel data. This tests that what happens when a call to fread() fails. This bitmap processor should probably process the data that it does have AND display a diagnostic.
bitdepth-large.bmp A bitmap with a 'biBitCount' field in its BMPINFOHEADER that is very large. This attempts to trick the bitmap processor into thinking the bit depth is negative.
bitdepth-odd.bmp A bitmap with a 'biBitCount' field in its BMPINFOHEADER that is odd.
bitdepth-zero.bmp A bitmap with a 'biBitCount' field in its BMPINFOHEADER that is 0.
colormasks-cropped.bmp A BI_BITFIELDS bitmap that is one byte short of having a complete colormask array. This tests that what happens when fread() returns fewer bytes than expected.
colormasks-missing.bmp A BI_BITFIELDS bitmap file that is so short that it doesn't include the colormask array. This tests that what happens when a call to fread() fails.
compression-bad-rle4-for-8bpp.bmp A 4 bpp bitmap with a 'biCompression' field of BI_RLE8. Only 8 bpp bitmaps may use BI_RLE8.
compression-bad-rle8-for-4bpp.bmp An 8 bpp bitmap with a 'biCompression' field of BI_RLE4. Only 4 bpp bitmaps may use BI_RLE4.
compression-unknown.bmp A bitmap with an unrecognized 'biCompression' field.
directory.bmp A directory that has a '.bmp' extension. This tests what happens when the directory entity exists, but fopen() fails.
emptyfile.bmp A zero-byte file. This tests that what happens when the first call to fread() fails.
fileinfoheader-cropped.bmp A bitmap that is one byte short of having a complete fileinfoheader. This tests that what happens when fread() returns fewer bytes than expected.
height-zero.bmp A bitmap with a 'biHeight' field in its BMPINFOHEADER that is 0.
infoheader-cropped.bmp A bitmap that is one byte short of having a complete BITMAPINFOHEADER. This tests that what happens when fread() returns fewer bytes than expected.
infoheader-missing.bmp A bitmap file that is so short that it doesn't include a BITMAPINFOHEADER. This tests that what happens when a call to fread() fails.
infoheadersize-large.bmp A bitmap with a 'biSize' field in its BMPINFOHEADER that is too large.
infoheadersize-small.bmp A bitmap with a 'biSize' field in its BMPINFOHEADER that is too small.
infoheadersize-zero.bmp A bitmap with a 'biSize' field in its BMPINFOHEADER that is 0.
magicnumber-bad.bmp A bitmap with an invalid magic number (it uses 'Bm' instead of 'BM') A bitmap processor that ignores this field is probably trusting the file extension or doing a case-insensitive compare.
magicnumber-cropped.bmp A one byte bitmap that only contains the 'B' of the magic number. This tests that what happens when the first call to fread() returns fewer bytes than expected.
offbits-large.bmp A bitmap with an 'dwOffBits' field that is larger than the file size.
offbits-negative.bmp A bitmap with an 'dwOffBits' field that is -1. This is supposed to be interpreted as an unsigned value, so it will either be understood as a very large (illegal) value, or a negative value (also illegal).
offbits-zero.bmp A bitmap with an 'dwOffBits' field that is 0. A bitmap processor may recover from this by assuming that the pixel data immediately follows the palette.
palette-cropped.bmp A bitmap that is one byte short of having a complete palette. This tests that what happens when fread() returns fewer bytes than expected.
palette-missing.bmp A bitmap file that is so short that it doesn't include the palette. This tests that what happens when a call to fread() fails.
palette-too-big.bmp A bitmap that has 1 bit per pixel that has a palette with 5000 colors.
pixeldata-missing.bmp A bitmap file that doesn't include any of the pixel data.
rle4-absolute-cropped.bmp A simple run-length encoded bitmap that has 4 bits per pixel. The entire bitmap is in 'absolute mode'. The pixel data ends prematurely--in the middle of an absolute escape sequence.
rle4-delta-cropped.bmp A simple run-length encoded bitmap that has 4 bits per pixel. The bitmap uses 'delta escapes'. The file ends in the middle of a delta escape.
rle4-no-end-of-line-marker.bmp An RLE4 compressed bitmap with no end-of-line sequences. It is unclear if a bitmap processor should implicitly add end-of-line markers when the pixel run the row's width, or if it should ignore all pixel data beyond the row's width.
rle4-runlength-cropped.bmp A simple run-length encoded bitmap that has 4 bits per pixel. The entire bitmap is in 'encoded mode'. The pixel data ends prematurely--in the middle of an encoded escape sequence.
rle8-absolute-cropped.bmp A simple run-length encoded bitmap that has 8 bits per pixel. The entire bitmap is in 'absolute mode'. The pixel data ends prematurely--in the middle of an absolute escape sequence.
rle8-delta-cropped.bmp A simple run-length encoded bitmap that has 8 bits per pixel. The bitmap uses 'delta escapes'. The file ends in the middle of a delta escape.
rle8-deltaleavesimage.bmp A simple run-length encoded bitmap that has 8 bits per pixel. The bitmap contains 'delta' escape sequences the leave the image. The intent is to trick the processor into accessing invalid memory.
rle8-no-end-of-line-marker.bmp An RLE8 compressed bitmap with no end-of-line sequences. It is unclear if a bitmap processor should implicitly add end-of-line markers when the pixel run the row's width, or if it should ignore all pixel data beyond the row's width.
rle8-runlength-cropped.bmp A simple run-length encoded bitmap that has 8 bits per pixel. The entire bitmap is in 'encoded mode'. The pixel data ends prematurely--in the middle of an encoded escape sequence.
width-negative.bmp A bitmap with a negative 'biWidth' field in its BMPINFOHEADER.
width-times-height-overflow.bmp A bitmap whose reported width and height cause a 32bit overflow when they are multiplied together. This tries to trick the image processor into allocating a very small buffer that it thinks is very large.
width-zero.bmp A bitmap with a 'biWidth' field in its BMPINFOHEADER that is 0.