From 89a5367d49b2556a2635dbb6d48d6a6b182a2c6c Mon Sep 17 00:00:00 2001 From: Albert Astals Cid Date: Thu, 23 May 2019 00:54:29 +0200 Subject: [PATCH] JPEG2000Stream: fail gracefully if not all components have the same WxH I think this is just a mistake, or at least the only file we have with this scenario is a fuzzed one --- poppler/JPEG2000Stream.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/poppler/JPEG2000Stream.cc b/poppler/JPEG2000Stream.cc index 15bbcae4..0eea3a2d 100644 --- a/poppler/JPEG2000Stream.cc +++ b/poppler/JPEG2000Stream.cc @@ -4,7 +4,7 @@ // // A JPX stream decoder using OpenJPEG // -// Copyright 2008-2010, 2012, 2017, 2018 Albert Astals Cid +// Copyright 2008-2010, 2012, 2017-2019 Albert Astals Cid // Copyright 2011 Daniel Glöckner // Copyright 2014, 2016 Thomas Freitag // Copyright 2013, 2014 Adrian Johnson @@ -253,6 +253,12 @@ void JPXStream::init() close(); break; } + const int componentPixels = priv->image->comps[component].w * priv->image->comps[component].h; + if (componentPixels != priv->npixels) { + error(errSyntaxWarning, -1, "Component {0:d} has different WxH than component 0", component); + close(); + break; + } unsigned char *cdata = (unsigned char *)priv->image->comps[component].data; int adjust = 0; int depth = priv->image->comps[component].prec; -- 2.21.0