GraphicsMagick: coders/bmp.c Bitmap header with size 52 bytes is...
GraphicsMagick Commits <[email protected]> Thu, 31 Aug 2023 20:01:05 -0500
| Newsgroups | gmane.comp.video.graphicsmagick.cvs |
|---|---|
| Message-ID | <mailman.13219.1693530073.1374.graphicsmagick-commit@lists.sourceforge.net> |
changeset 84915db66dea in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=84915db66dea summary: coders/bmp.c Bitmap header with size 52 bytes is also valid. diffstat: ChangeLog | 4 ++++ coders/bmp.c | 28 +++++++++++++++++++++------- 2 files changed, 25 insertions(+), 7 deletions(-) diffs (76 lines): diff -r 3a8a179f37b7 -r 84915db66dea ChangeLog --- a/ChangeLog Thu Aug 31 15:34:33 2023 -0500 +++ b/ChangeLog Fri Sep 01 03:00:51 2023 +0200 @@ -1,3 +1,7 @@ +2023-09-01 Fojtik Jaroslav <[email protected]> + + * coders/bmp.c Bitmap header with size 52 bytes is also valid. + 2023-08-31 Bob Friesenhahn <[email protected]> * magick/module_aliases.h: Add missing module aliases "PNG00", diff -r 3a8a179f37b7 -r 84915db66dea coders/bmp.c --- a/coders/bmp.c Thu Aug 31 15:34:33 2023 -0500 +++ b/coders/bmp.c Fri Sep 01 03:00:51 2023 +0200 @@ -775,7 +775,7 @@ if (bmp_info.offset_bits < bmp_info.size) ThrowBMPReaderException(CorruptImageError,ImproperImageHeader,image); - if (bmp_info.size == 12) + if(bmp_info.size == 12) { /* Windows 2.X or OS/2 BMP image file. @@ -809,16 +809,32 @@ */ switch(bmp_info.size) { - case 40: - case 56: - case 64: + case 40: if(logging) + (void) LogMagickEvent(CoderEvent, GetMagickModule(), "Format: MS Windows bitmap 3.X"); + break; + case 52: if(logging) + (void) LogMagickEvent(CoderEvent, GetMagickModule(), "Format: MS Windows bitmap 3.X V2"); + break; + case 56:if(logging) + (void) LogMagickEvent(CoderEvent, GetMagickModule(), "Format: MS Windows bitmap 3.X V3"); + break; + case 64: if(logging) + (void) LogMagickEvent(CoderEvent, GetMagickModule(), "Format: OS22XBITMAPHEADER"); + break; case 78: - case 108: break; + case 108: if (logging) + (void) LogMagickEvent(CoderEvent, GetMagickModule(), "Format: MS Windows bitmap 3.X V4"); + break; + case 124: if(logging) + (void) LogMagickEvent(CoderEvent, GetMagickModule(), "Format: MS Windows bitmap 3.X V5"); + break; default: if (bmp_info.size < 64) ThrowBMPReaderException(CorruptImageError, NonOS2HeaderSizeError, image); /* A value larger than 64 indicates a later version of the OS/2 BMP format. .... as far as OS/2 development caesed we could consider to close this Trojan's horse window in future. */ + if(logging) + (void) LogMagickEvent(CoderEvent, GetMagickModule(), "Format: MS Windows bitmap 3.X ?"); break; } @@ -845,7 +861,6 @@ if (logging) { (void) LogMagickEvent(CoderEvent, GetMagickModule(), - " Format: MS Windows bitmap 3.X\n" " Geometry: %dx%d\n" " Planes: %u\n" " Bits per pixel: %u", @@ -885,7 +900,6 @@ if(logging) (void) LogMagickEvent(CoderEvent,GetMagickModule(), - " OS22XBITMAPHEADER header:\n" " Units: %u\n" " Reserved: %u\n" " Recording: %u\n"