summaryrefslogtreecommitdiffstats
path: root/src/kernel
diff options
context:
space:
mode:
authorSlávek Banko <slavek.banko@axis.cz>2019-11-01 01:59:59 +0100
committerSlávek Banko <slavek.banko@axis.cz>2019-12-18 17:55:19 +0100
commit0f0b7ff115ae07da28e438ce92022e48c26e9289 (patch)
treef2d8b06639f9bf7b69b053926e54e9f8b6d9f8c0 /src/kernel
parent0aaa77dd7e2eeca2313187c5b3eb1b7edc986708 (diff)
downloadqt3-0f0b7ff115ae07da28e438ce92022e48c26e9289.tar.gz
qt3-0f0b7ff115ae07da28e438ce92022e48c26e9289.zip
Fix crash in tqimage for certain malformed ppm image files
The ppm format specifies that the maximum color value field must be less than 65536. The handler did not enforce this, leading to potentional overflow when the value was used in 16 bits context. Based on Qt5 patch for CVE-2018-19872. Signed-off-by: Slávek Banko <slavek.banko@axis.cz> (cherry picked from commit b08a6d71ba872e67b75a822fcd44670126975818)
Diffstat (limited to 'src/kernel')
-rw-r--r--src/kernel/qimage.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/kernel/qimage.cpp b/src/kernel/qimage.cpp
index 93a6b36..f49ae86 100644
--- a/src/kernel/qimage.cpp
+++ b/src/kernel/qimage.cpp
@@ -5196,7 +5196,7 @@ static void read_pbm_image( QImageIO *iio ) // read PBM image data
mcc = 1; // ignore max color component
else
mcc = read_pbm_int( d ); // get max color component
- if ( w <= 0 || w > 32767 || h <= 0 || h > 32767 || mcc <= 0 )
+ if ( w <= 0 || w > 32767 || h <= 0 || h > 32767 || mcc <= 0 || mcc > 0xffff )
return; // weird P.M image
int maxc = mcc;