diff options
author | Marti Maria <marti.maria@littlecms.com> | 2022-12-01 17:04:26 +0100 |
---|---|---|
committer | Marti Maria <marti.maria@littlecms.com> | 2022-12-01 17:04:26 +0100 |
commit | ba7004c8ff07bee2c9b6bccb8036611d8b0b2408 (patch) | |
tree | 22f65649624a79cd8b7da39b22920eb3c82ba5b4 /src | |
parent | caab4c07e60022a0f776b543eaa30785e2bb42ed (diff) | |
download | lcms2-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.c | 4 |
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; |