| 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. |