summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarti Maria <marti.maria@littlecms.com>2022-12-01 17:04:26 +0100
committerMarti Maria <marti.maria@littlecms.com>2022-12-01 17:04:26 +0100
commitba7004c8ff07bee2c9b6bccb8036611d8b0b2408 (patch)
tree22f65649624a79cd8b7da39b22920eb3c82ba5b4 /src
parentcaab4c07e60022a0f776b543eaa30785e2bb42ed (diff)
downloadlcms2-ba7004c8ff07bee2c9b6bccb8036611d8b0b2408.tar.gz
Add a check for forged profiles with bad matrices
Found by chrome fuzzer. Thanks!
Diffstat (limited to 'src')
-rw-r--r--src/cmsopt.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/cmsopt.c b/src/cmsopt.c
index 0802f30..b4f0929 100644
--- a/src/cmsopt.c
+++ b/src/cmsopt.c
@@ -1695,6 +1695,10 @@ cmsBool OptimizeMatrixShaper(cmsPipeline** Lut, cmsUInt32Number Intent, cmsUInt3
_cmsStageMatrixData* Data1 = (_cmsStageMatrixData*)cmsStageData(Matrix1);
_cmsStageMatrixData* Data2 = (_cmsStageMatrixData*)cmsStageData(Matrix2);
+ // Only RGB to RGB
+ if (Matrix1->InputChannels != 3 || Matrix1->OutputChannels != 3 ||
+ Matrix1->InputChannels != 3 || Matrix2->OutputChannels != 3) return FALSE;
+
// Input offset should be zero
if (Data1->Offset != NULL) return FALSE;