From e55b6fa4d3c5b7e08d9e4bc8c803a79ca908b5a4 Mon Sep 17 00:00:00 2001 From: Marti Maria Date: Tue, 16 May 2023 16:32:42 +0200 Subject: add a check for cmsFLAGS_COPY_ALPHA Thanks to ISOZAKI Nozomi to point out the issue. --- src/cmsxform.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src') diff --git a/src/cmsxform.c b/src/cmsxform.c index c70b7cb..93e07f8 100644 --- a/src/cmsxform.c +++ b/src/cmsxform.c @@ -989,6 +989,19 @@ _cmsTRANSFORM* AllocEmptyTransform(cmsContext ContextID, cmsPipeline* lut, } } + /** + * Check consistency for alpha channel copy + */ + if (*dwFlags & cmsFLAGS_COPY_ALPHA) + { + if (T_EXTRA(*InputFormat) != T_EXTRA(*OutputFormat)) + { + cmsSignalError(ContextID, cmsERROR_NOT_SUITABLE, "Mismatched alpha channels"); + cmsDeleteTransform(p); + return NULL; + } + } + p ->InputFormat = *InputFormat; p ->OutputFormat = *OutputFormat; p ->dwOriginalFlags = *dwFlags; -- cgit v1.2.1