This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-imaging.git
commit 65b32d6c8aa94debb6e549cb2b0eab928e88d440 Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Sat Dec 23 11:01:48 2023 -0500 Fail-fast on null inputs in AbstractPixelParser constructor (oss-fuzz 34180) #183 --- src/changes/changes.xml | 3 +++ .../imaging/formats/bmp/AbstractPixelParser.java | 17 +++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 2a7bcbd0..f3190321 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -78,6 +78,9 @@ The <action> type attribute can be add,update,fix,remove. <action issue="IMAGING-337" dev="ggregory" type="fix" due-to="Gary Lucas, Gary Gregory"> Make ImageInfo state correct color type #337. </action> + <action dev="ggregory" type="fix" due-to="Bruno P. Kinoshita, Gary Gregory"> + Fail-fast on null inputs in AbstractPixelParser constructor (oss-fuzz 34180) #183. + </action> <!-- ADD --> <action issue="IMAGING-352" dev="ggregory" type="add" due-to="Jeroen van der Vegt, Gary Gregory"> [PngWriter] Allow custom PaletteFactory #294. diff --git a/src/main/java/org/apache/commons/imaging/formats/bmp/AbstractPixelParser.java b/src/main/java/org/apache/commons/imaging/formats/bmp/AbstractPixelParser.java index dafdd594..b5fee061 100644 --- a/src/main/java/org/apache/commons/imaging/formats/bmp/AbstractPixelParser.java +++ b/src/main/java/org/apache/commons/imaging/formats/bmp/AbstractPixelParser.java @@ -19,6 +19,7 @@ package org.apache.commons.imaging.formats.bmp; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; +import java.util.Objects; import org.apache.commons.imaging.ImagingException; import org.apache.commons.imaging.common.ImageBuilder; @@ -31,19 +32,19 @@ abstract class AbstractPixelParser { final InputStream is; - AbstractPixelParser(final BmpHeaderInfo bhi, final byte[] colorTable, final byte[] imageData) { - this.bhi = bhi; + AbstractPixelParser(final BmpHeaderInfo bmpHeaderInfo, final byte[] colorTable, final byte[] imageData) { + this.bhi = Objects.requireNonNull(bmpHeaderInfo, "bmpHeaderInfo"); this.colorTable = colorTable; - this.imageData = imageData; + this.imageData = Objects.requireNonNull(imageData, "imageData"); is = new ByteArrayInputStream(imageData); } - int getColorTableRgb(int index) { - index *= 4; - final int blue = 0xff & colorTable[index + 0]; - final int green = 0xff & colorTable[index + 1]; - final int red = 0xff & colorTable[index + 2]; + int getColorTableRgb(int actual) { + actual *= 4; + final int blue = 0xff & colorTable[actual + 0]; + final int green = 0xff & colorTable[actual + 1]; + final int red = 0xff & colorTable[actual + 2]; final int alpha = 0xff; return (alpha << 24)