diff options
Diffstat (limited to 'src/cmsxform.c')
-rw-r--r-- | src/cmsxform.c | 13 |
1 files changed, 13 insertions, 0 deletions
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; |