Bug 651482 - Allow decoding bitmaps with 52 and 56 byte info headers. r=tnikkel
☠☠ backed out by 94667ab68f35 ☠ ☠
authorwesj <we.j@live.com>
Mon, 18 May 2020 06:41:28 +0000
changeset 530548 d8cc480c563ce2c6cb51cc9225662a3f4aab36b6
parent 530547 37e68bff6c62be9e13f75685252445bece3f421c
child 530549 734c4f395eba16391772a817a2cccd4a078853af
push id116230
push usernerli@mozilla.com
push dateMon, 18 May 2020 06:42:01 +0000
treeherderautoland@734c4f395eba [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstnikkel
bugs651482
milestone78.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 651482 - Allow decoding bitmaps with 52 and 56 byte info headers. r=tnikkel Differential Revision: https://phabricator.services.mozilla.com/D75467
image/BMPHeaders.h
image/decoders/nsBMPDecoder.cpp
image/test/reftest/bmp/bmp-24bpp/24bpp-rgb-ref.png
image/test/reftest/bmp/bmp-24bpp/24bpp-rgb.bmp
image/test/reftest/bmp/bmp-24bpp/reftest.list
image/test/reftest/bmp/bmp-32bpp/32bpp-rgb-ref.png
image/test/reftest/bmp/bmp-32bpp/32bpp-rgb.bmp
image/test/reftest/bmp/bmp-32bpp/reftest.list
image/test/reftest/bmp/bmp-32bpp/rgb32h52.bmp
image/test/reftest/bmp/bmp-32bpp/rgb32h52.png
image/test/reftest/bmp/bmp-32bpp/rgb32h56.png
image/test/reftest/bmp/bmp-32bpp/rgba32h56.bmp
image/test/reftest/bmp/reftest.list
--- a/image/BMPHeaders.h
+++ b/image/BMPHeaders.h
@@ -15,16 +15,18 @@ namespace bmp {
 // The length of the file header as defined in the BMP spec.
 static const size_t FILE_HEADER_LENGTH = 14;
 
 // This lengths of the info header for the different BMP versions.
 struct InfoHeaderLength {
   enum {
     WIN_V2 = 12,
     WIN_V3 = 40,
+    WIN_V3_NT = 52,
+    WIN_V3_NT_ALPHA = 56,
     WIN_V4 = 108,
     WIN_V5 = 124,
 
     // OS2_V1 is omitted; it's the same as WIN_V2.
     OS2_V2_MIN = 16,  // Minimum allowed value for OS2v2.
     OS2_V2_MAX = 64,  // Maximum allowed value for OS2v2.
 
     WIN_ICO = WIN_V3,
--- a/image/decoders/nsBMPDecoder.cpp
+++ b/image/decoders/nsBMPDecoder.cpp
@@ -31,17 +31,17 @@
 //   (|mBpp|) which must be 1, 4, 8 or 24.
 // - Next is the semi-optional color table, which has length 2^|mBpp| and has 3
 //   bytes per value (BGR). The color table is required if |mBpp| is 1, 4, or 8.
 // - Next is an optional gap.
 // - Next is the pixel data, which is pointed to by |mDataOffset|.
 //
 // WinBMPv3. This is the most widely used version.
 // - It changed the info header to 40 bytes by taking the WinBMPv2 info
-//   header, enlargening its width and height fields, and adding more fields
+//   header, enlarging its width and height fields, and adding more fields
 //   including: a compression type (|mCompression|) and number of colors
 //   (|mNumColors|).
 // - The semi-optional color table is now 4 bytes per value (BGR0), and its
 //   length is |mNumColors|, or 2^|mBpp| if |mNumColors| is zero.
 // - |mCompression| can be RGB (i.e. no compression), RLE4 (if |mBpp|==4) or
 //   RLE8 (if |mBpp|==8) values.
 //
 // WinBMPv3-NT. A variant of WinBMPv3.
@@ -489,16 +489,18 @@ LexerTransition<nsBMPDecoder::State> nsB
 LexerTransition<nsBMPDecoder::State> nsBMPDecoder::ReadInfoHeaderSize(
     const char* aData, size_t aLength) {
   mPreGapLength += aLength;
 
   mH.mBIHSize = LittleEndian::readUint32(aData);
 
   bool bihSizeOk = mH.mBIHSize == InfoHeaderLength::WIN_V2 ||
                    mH.mBIHSize == InfoHeaderLength::WIN_V3 ||
+                   mH.mBIHSize == InfoHeaderLength::WIN_V3_NT ||
+                   mH.mBIHSize == InfoHeaderLength::WIN_V3_NT_ALPHA ||
                    mH.mBIHSize == InfoHeaderLength::WIN_V4 ||
                    mH.mBIHSize == InfoHeaderLength::WIN_V5 ||
                    (mH.mBIHSize >= InfoHeaderLength::OS2_V2_MIN &&
                     mH.mBIHSize <= InfoHeaderLength::OS2_V2_MAX);
   if (!bihSizeOk) {
     return Transition::TerminateFailure();
   }
   // ICO BMPs must have a WinBMPv3 header. nsICODecoder should have already
@@ -606,16 +608,18 @@ LexerTransition<nsBMPDecoder::State> nsB
        (mH.mBpp == 1 || mH.mBpp == 4 || mH.mBpp == 8 || mH.mBpp == 16 ||
         mH.mBpp == 24 || mH.mBpp == 32)) ||
       (mH.mCompression == Compression::RLE8 && mH.mBpp == 8) ||
       (mH.mCompression == Compression::RLE4 && mH.mBpp == 4) ||
       (mH.mCompression == Compression::BITFIELDS &&
        // For BITFIELDS compression we require an exact match for one of the
        // WinBMP BIH sizes; this clearly isn't an OS2 BMP.
        (mH.mBIHSize == InfoHeaderLength::WIN_V3 ||
+        mH.mBIHSize == InfoHeaderLength::WIN_V3_NT ||
+        mH.mBIHSize == InfoHeaderLength::WIN_V3_NT_ALPHA ||
         mH.mBIHSize == InfoHeaderLength::WIN_V4 ||
         mH.mBIHSize == InfoHeaderLength::WIN_V5) &&
        (mH.mBpp == 16 || mH.mBpp == 32));
   if (!bppCompressionOk) {
     return Transition::TerminateFailure();
   }
 
   // Initialize our current row to the top of the image.
@@ -628,17 +632,17 @@ LexerTransition<nsBMPDecoder::State> nsB
   uint32_t surplus = mPixelRowSize % 4;
   if (surplus != 0) {
     mPixelRowSize += 4 - surplus;
   }
 
   size_t bitFieldsLengthStillToRead = 0;
   if (mH.mCompression == Compression::BITFIELDS) {
     // Need to read bitfields.
-    if (mH.mBIHSize >= InfoHeaderLength::WIN_V4) {
+    if (mH.mBIHSize >= InfoHeaderLength::WIN_V3_NT) {
       // Bitfields are present in the info header, so we can read them
       // immediately.
       mBitFields.ReadFromHeader(aData + 36, /* aReadAlpha = */ true);
 
       // If this came from the clipboard, then we know that even if the header
       // explicitly includes the bitfield masks, we need to add an additional
       // offset for the start of the RGB data.
       if (mIsForClipboard) {
@@ -1034,18 +1038,17 @@ LexerTransition<nsBMPDecoder::State> nsB
       while (lpos > 0) {
         SetPixel(dst, src[2], src[1], src[0]);
         --lpos;
         src += 3;
       }
       break;
 
     case 32:
-      if (mH.mCompression == Compression::RGB && mIsWithinICO &&
-          mH.mBpp == 32) {
+      if (mH.mCompression == Compression::RGB && mIsWithinICO) {
         // This is a special case only used for 32bpp WinBMPv3-ICO files, which
         // could be in either 0RGB or ARGB format. We start by assuming it's
         // an 0RGB image. If we hit a non-zero alpha value, then we know it's
         // actually an ARGB image, and change tack accordingly.
         // (Note: a fully-transparent ARGB image is indistinguishable from a
         // 0RGB image, and we will render such an image as a 0RGB image, i.e.
         // opaquely. This is unlikely to be a problem in practice.)
         while (lpos > 0) {
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..9de5fc22a23a0574caa860abe9748e7cb733d1a5
GIT binary patch
literal 100
zc%17D@N?(olHy`uVBq!ia0vp^Y#_|R1SIp<RmcM=#^NA%Cx&(BWL^R}a-J@ZAspA&
wo-kx&VBla@Nc(@zxMBUAB??@;$38}KJM3lVwi5gG4ycmB)78&qol`;+04CoV#Q*>R
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..65e2cf418ce5bd279c1bc817225ff07038240847
GIT binary patch
literal 174
rc${<cUB>_cW<aa~#B5N^$RGh0uK;3UZU{zz|3LH~Off(ydWZo4CUGWF
--- a/image/test/reftest/bmp/bmp-24bpp/reftest.list
+++ b/image/test/reftest/bmp/bmp-24bpp/reftest.list
@@ -14,8 +14,9 @@
 == bmp-size-16x16-24bpp.bmp bmp-size-16x16-24bpp.png
 == bmp-size-17x17-24bpp.bmp bmp-size-17x17-24bpp.png
 == bmp-size-31x31-24bpp.bmp bmp-size-31x31-24bpp.png
 == bmp-size-32x32-24bpp.bmp bmp-size-32x32-24bpp.png
 == bmp-size-33x33-24bpp.bmp bmp-size-33x33-24bpp.png
 == bmp-not-square-24bpp.bmp bmp-not-square-24bpp.png
 == os2bmp-size-32x32-24bpp.bmp bmp-size-32x32-24bpp.png
 == top-to-bottom-16x16-24bpp.bmp bmp-size-16x16-24bpp.png
+== 24bpp-rgb.bmp 24bpp-rgb-ref.png
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..9de5fc22a23a0574caa860abe9748e7cb733d1a5
GIT binary patch
literal 100
zc%17D@N?(olHy`uVBq!ia0vp^Y#_|R1SIp<RmcM=#^NA%Cx&(BWL^R}a-J@ZAspA&
wo-kx&VBla@Nc(@zxMBUAB??@;$38}KJM3lVwi5gG4ycmB)78&qol`;+04CoV#Q*>R
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..9dd5c28f5117ef279bad56a46e720e4c138d4975
GIT binary patch
literal 214
vc${<cy~Y3mZa{1S#B5N^$e_T$45TLju`o9TBZ2=ggx~}5e<%x`L1%FQAmu5!
new file mode 100644
--- /dev/null
+++ b/image/test/reftest/bmp/bmp-32bpp/reftest.list
@@ -0,0 +1,6 @@
+# BMP 32BPP tests
+
+# Images of various odd size info header sizes
+== 32bpp-rgb.bmp 32bpp-rgb-ref.png
+== rgb32h52.bmp rgb32h52.png
+== rgba32h56.bmp rgb32h56.png
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..db6e4538ef84f48baf706603bd919223d372444b
GIT binary patch
literal 32578
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..86a9c945b0bfe98d71fb50f86f11434bea521882
GIT binary patch
literal 1072
zc%17D@N?(olHy`uVBq!ia0vp^^+4>v!2~4te73g%QjEnx?oJHr&dIz4aySb-B8wRq
zxP?KOkzv*x2?hq{tDY{7Ar-gY&N1}4?I7atKU6lSv~gliN^|d;9v{uDB~nutdhjTu
zW`tZ}X=<6{z-l;k)`gI@FBpPawG1CIc9t|v6x_C<RktU_TSX_9-Tm0cxu=g>nsffq
z=kI&}=l%WN_5a^l`*E-`crtl1Mdr=3I49{UbCpBj^CX^4p;zn9X*^o#=CR<};fogq
z88}~5WI7x$dcqsv)g0XSWuo0B_g^0JFO_ST^g}uJ0>Ahj4@-VxyYSuclLA5<q=<o`
z!&PbCb?FNk4vX1LkL~Te-17U8Qw}4;IluEYm#=@7V9?Q@KTF<J_u209R;NOa+WG$9
zl7BNSc(rPGhM8IQy7|8s#A|6XJwJXcN{Hdp&-YB#e-AMTltu(!Z8xb6zG!2@bVkGY
zZS+^Y9XkS|++PGH>x(VBJb#6Sp#T2kA7;%wZ(%aa_44P-f4=DJKaY0a#vrYm`}*}E
zHiZ=@oH<@@OP+G+S!|m-tCPo*+9iLM-!c3Y6R*E3%-eZQ>!N9o8asZsOqljh;@)5N
z79Tyou)1)GFZp@X_Pmft(v{)+#XjX2e`J2})JLlSO0UQ?d<fc674UUUZMAfM^Rirh
ze?Pt(`N4uh{CUz+Id}5+Ynbsro&KnHw)f)NQ|*rw%kS*pUG4I|ODjh@vVB?Ryf5rl
z@3vnMpJG4r^8GoCi{;&3+rJ8X8<o4%wrZPTTYpZrg_6JfuPU$iTphIxPef<dEoN|A
zJTYm}`_4MG$&z8eG@UAnVy$=Fxh^9ORN&FI!?dKeB2Vw?@#Fk|@4vr&aOG~T=;X@n
zZz7mwq}0^P8jDq5GJaoh{O`Iwhgr7o+IwqeKjYN5UKPeUXBl?4ef*ev?9=_-|D%e%
zBc5>n@y@TSe6Tk7Y?!mPVm5!Clce<NZQ+Uwri=YrtDAd4ng5~K>8an!zU}z7fvth@
zyY%-kZ3Y9QO$WEH{gS-!Di=de-aC$(bC>_eT;JD~6~86M>iAB{waZ@@#j!DXdX;y*
zWU88ZwvJ69N&Y*#x4mbk;n6dt-KxhKQa;Ue+H|0EqMD}WvWE1X8M9xj-Q1aH_WRVI
zsr~}-o4-`<UtbgQWqwuu?&9Xl0*yDX2`|)d620_&?rXVM9`+iRPfnLktg}CQ(|O5%
z`{G!4tL87iH@r6YFM40(5zpW*zi40RU6Ux0qRaWFhac!vE!#K0V)6usPgBhnzGr4|
z`10!1T%CWlXTR!8&J*Zcd|c-0oaxJ!E$Z99f5WR4Syv`ruq(ZP{JRB8W|(hT`)94y
kFFQ9mlpFx#9C{+pc`19x)s39Hfw`W+)78&qol`;+07_!{jsO4v
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..25e542a6551acf16d58489d2d7fde3a5d423b477
GIT binary patch
literal 1229
zc${^Vdr%T~0LOm>wZyqpG<$h=(?#XV>nULkBNeSCkJ>eSMa%4^DB_ESLSA5HnQTK*
zS!$=VBJq_{ouXl)9)x8R^N~OoK_zM-f{8fy=Wg5G=llKM_rCvsuMi?}F7P#Q0DwzG
zcnE1RS&Ir@zHHHV@NS=93<#Zs!ve8t-Mhu&loC#+1K^DKTM$qxTm=9uH6mpH(X3&U
z5R-_A@Q}CfiEU8tsu1L+RV_jHa|<@-srpyPUOjLN^mc{j)jtmJ$v}NGCQNfGMqKuH
zcM3%k8$<n=o<}dcKMMAIL?9Gy<<(D%QB6^&7veKA)&9xShOl9aN?FEe&rVLbIVgg;
z{<xAt4!#4kqKq*$hm~kJT&+EV?cMhkdT<j$Qb6jV+g^^2!YWdGH8VUq`mMJsZ!{k9
zo$kNManrJTqpjVo(EH4&f6tBwkLwQOadDVc%$fR{fib(9X>1npMSyLH?z=9_6vBa4
zetnBIXhghf;Klp*!`qtduy-{5Hc+9zk5$BoW8}^Tj+?D5F5U0uYt`>)Kslwa;~77e
zIVdP{0)D$?TDMSitl5_ndpEA%7?XCfI6wpm%*P9!({`0f)_+}MAa(}wV?vt^!zW}O
zK&gD{$6fer5#r<IzI6R)TiLuzVeyC;6i%WB&G$5JpEvJpSr{tN&uFA=D}f_ilAIPp
z4p`PrQ+fFmI(P^9=0Vj-LvO)Kd*-A#kKLE1vR)TGn;Hxyj69or5mu)@)Rb@p#J~US
zkujL*>(8<g@<APPe5fhigh|@?gCc3I;DfNPVJwwynLL+vKqq_ROmE!18f{?NjnDuZ
zXI2q%dZfiy=S5TbaLcoWVSD}0?U_|XjAKT9?zT!Yk3d_gd6q9cPrc$~%+a(#F34JO
z9+lny)cp+}@~r#u{sV|shRu{QmnBQy$oG>4!fwyu0*fjc$zXs`Y5D_lL4UAQ39s*=
z=Ug=vg5dKHtG6UxU<9SOxc)iukgg~-Gj?CF-|Cy)oODe)^V*d4c@i3wA0&tppvNKH
z;eGT3;^~sot_RG9T;;2ri9Y;>?~nh&*O<nCN<I5&N*V>U)9(txI!n$etFsrRvENDp
zg30Vpl)?scg<})Qs-Ip@65xvZqFGYwkSGztMj$7a?tXI~`RH1e60kX(YTlC>oM{G0
zQhAocQ2rg{rL7W{<atttCEk0DF^BF`&36YKjitm1CbrXr7Z4(A%xl4}MvV>U(muZL
zPCli!a<wk{Lv|Zv%sGX~&WC3W#GO6aEd9Ca-ueWR*X?FG(VRtw<}gsQV}k`#>1fSE
z#SJ3nB~PU99x@zb)yf!e&XCiuZAW{DQ)Ux#_i|e79&XY`u2{j<cDFEPfnREdQkJ)e
zQ(3;`OE;+P%ZtiWeC?NtF!HITFAt7zmu$X-ky9~UIjpxIXx5souN<fjD|QDj3e$qM
zjQ`4amA3cIhnzYy%k8(XFxOMM94C;KdgMmDjar&*-mvqDWzzcbc<Z|Ak(ws_Nwt$S
zMJG$t9{R0KA6+}tVf5CO?W|go$)0j5|0fuzjR{3+IwBNErtJUl!Pyod#bxSyk<5!L
Q7B2}zghqylv6S4u01TOF5C8xG
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..343baa3300f331aaeabeb40d8fcd2f232393e815
GIT binary patch
literal 32582
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
--- a/image/test/reftest/bmp/reftest.list
+++ b/image/test/reftest/bmp/reftest.list
@@ -1,14 +1,15 @@
 # BMP tests
 
 include bmp-1bpp/reftest.list
 include bmp-4bpp/reftest.list
 include bmp-8bpp/reftest.list
 include bmp-24bpp/reftest.list
+include bmp-32bpp/reftest.list
 include bmp-corrupted/reftest.list
 include bmpsuite/reftest.list
 
 # Two bmp files where the offset to the start of the image data in the file
 # is past the end of the file. In 1240629-1.bmp the offset us uint32_max,
 # so we are testing that we don't try to allocate a buffer that size (and
 # fail on 32 bit platforms) and declare the image in error state. If in the
 # future we decide that such bmps (offset past the end of the file) are