Index: third_party/lcms2-2.6/src/cmstypes.c |
diff --git a/third_party/lcms2-2.6/src/cmstypes.c b/third_party/lcms2-2.6/src/cmstypes.c |
index 04dd0c4e001ece93213d99e343ea8b095f12afe1..386439ba2b3bc2ebd344f261d6d65c03eb23c99b 100644 |
--- a/third_party/lcms2-2.6/src/cmstypes.c |
+++ b/third_party/lcms2-2.6/src/cmstypes.c |
@@ -4297,8 +4297,12 @@ void *Type_MPEclut_Read(struct _cms_typehandler_struct* self, cmsIOHANDLER* io, |
// Copy MAX_INPUT_DIMENSIONS at most. Expand to cmsUInt32Number |
nMaxGrids = InputChans > MAX_INPUT_DIMENSIONS ? MAX_INPUT_DIMENSIONS : InputChans; |
- for (i=0; i < nMaxGrids; i++) GridPoints[i] = (cmsUInt32Number) Dimensions8[i]; |
+ for (i = 0; i < nMaxGrids; i++) { |
+ if (Dimensions8[i] == 1) goto Error; // Impossible value, 0 for no CLUT and then 2 at least |
+ GridPoints[i] = (cmsUInt32Number)Dimensions8[i]; |
+ } |
+ |
// Allocate the true CLUT |
mpe = cmsStageAllocCLutFloatGranular(self ->ContextID, GridPoints, InputChans, OutputChans, NULL); |
if (mpe == NULL) goto Error; |