We have check in BMPImageReader, where we verify image data size using BMP file 
size and bitmap offset value.
But we can't rely on this calculation when we have color palette. Also color 
palette is necessary in BMP when bits per pixel is less than 16 according to 
BMP 
specification(https://learn.microsoft.com/en-us/windows/win32/api/wingdi/ns-wingdi-bitmapv4header).

Now extra checks are added to not perform this check when we have color palette 
or bpp is less than 16.

Also when bitsPerPixel was less than 8 it was getting down-casted to 0. So this 
is also resolved by making this check for >=16bpp and not doing (bitsPerPixel / 
8)

-------------

Commit messages:
 - 8302151: BMPImageReader throws an exception reading BMP images

Changes: https://git.openjdk.org/jdk/pull/12573/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=12573&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8302151
  Stats: 68 lines in 2 files changed: 66 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/12573.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/12573/head:pull/12573

PR: https://git.openjdk.org/jdk/pull/12573

Reply via email to