GraphicsMagick: coders/wpg.c Fixed deffect in WPG header reading.
GraphicsMagick Commits <[email protected]>
| Newsgroups | gmane.comp.video.graphicsmagick.cvs |
|---|---|
| Message-ID | <mailman.40963.1673216090.1567.graphicsmagick-commit@lists.sourceforge.net> |
changeset 4559dc88f5c3 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=4559dc88f5c3 summary: coders/wpg.c Fixed deffect in WPG header reading. diffstat: ChangeLog | 4 ++++ ChangeLog.2022 | 2 +- coders/wpg.c | 14 +++++++------- 3 files changed, 12 insertions(+), 8 deletions(-) diffs (73 lines): diff -r 403c91fe1f53 -r 4559dc88f5c3 ChangeLog --- a/ChangeLog Sun Jan 08 10:54:47 2023 -0600 +++ b/ChangeLog Sun Jan 08 23:14:15 2023 +0100 @@ -1,3 +1,7 @@ +2023-01-08 Fojtik Jaroslav <[email protected]> + + * coders/wpg.c Fixed deffect in WPG header reading. + 2023-01-08 Bob Friesenhahn <[email protected]> * coders/png.c (WriteOnePNGImage): Use lower-case raw profile diff -r 403c91fe1f53 -r 4559dc88f5c3 ChangeLog.2022 --- a/ChangeLog.2022 Sun Jan 08 10:54:47 2023 -0600 +++ b/ChangeLog.2022 Sun Jan 08 23:14:15 2023 +0100 @@ -1,6 +1,6 @@ 2022-12-30 Fojtik Jaroslav <[email protected]> - * coders/pcx.c (WritePCXImage): Meke default RLE compression. + * coders/pcx.c (WritePCXImage): Make default RLE compression. Uncompressed PCX is more rare. 2022-12-30 Bob Friesenhahn <[email protected]> diff -r 403c91fe1f53 -r 4559dc88f5c3 coders/wpg.c --- a/coders/wpg.c Sun Jan 08 10:54:47 2023 -0600 +++ b/coders/wpg.c Sun Jan 08 23:14:15 2023 +0100 @@ -21,7 +21,7 @@ % % % Software Design % % Jaroslav Fojtik % -% June 2000 - 2022 % +% June 2000 - 2023 % % Rework for GraphicsMagick % % Bob Friesenhahn % % Feb-May 2003 % @@ -1109,8 +1109,8 @@ { unsigned long FileId; ExtendedSignedIntegralType DataOffset; /* magick_uint32_t */ - unsigned int ProductType; - unsigned int FileType; + unsigned char ProductType; + unsigned char FileType; unsigned char MajorVersion; unsigned char MinorVersion; unsigned int EncryptKey; @@ -1250,15 +1250,15 @@ */ Header.FileId=ReadBlobLSBLong(image); Header.DataOffset=(ExtendedSignedIntegralType) ReadBlobLSBLong(image); - Header.ProductType=ReadBlobLSBShort(image); - Header.FileType=ReadBlobLSBShort(image); + Header.ProductType=ReadBlobByte(image); + Header.FileType=ReadBlobByte(image); Header.MajorVersion=ReadBlobByte(image); Header.MinorVersion=ReadBlobByte(image); Header.EncryptKey=ReadBlobLSBShort(image); Header.Reserved=ReadBlobLSBShort(image); if(logging) LogHeaderWPG(Header); - if (Header.FileId!=0x435057FF || (Header.ProductType>>8)!=0x16) + if (Header.FileId!=0x435057FF || Header.FileType!=0x16) ThrowReaderException(CorruptImageError,ImproperImageHeader,image); if (Header.EncryptKey!=0) ThrowReaderException(CoderError,EncryptedWPGImageFileNotSupported,image); @@ -1285,7 +1285,7 @@ ThrowReaderException(CorruptImageError,AnErrorHasOccurredReadingFromFile,image); } - switch(Header.FileType) + switch(Header.MajorVersion) { case 1: /* WPG level 1 */ BitmapHeader2.RotAngle = 0;