diff options
Diffstat (limited to 'contrib/libs/lcms2/src/cmslut.c')
-rw-r--r-- | contrib/libs/lcms2/src/cmslut.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/contrib/libs/lcms2/src/cmslut.c b/contrib/libs/lcms2/src/cmslut.c index 77977fc6c9..1ea61a806b 100644 --- a/contrib/libs/lcms2/src/cmslut.c +++ b/contrib/libs/lcms2/src/cmslut.c @@ -475,6 +475,9 @@ cmsUInt32Number CubeSize(const cmsUInt32Number Dims[], cmsUInt32Number b) if (rv > UINT_MAX / dim) return 0; } + // Again, prevent overflow + if (rv > UINT_MAX / 15) return 0; + return rv; } @@ -814,7 +817,13 @@ cmsBool CMSEXPORT cmsStageSampleCLutFloat(cmsStage* mpe, cmsSAMPLERFLOAT Sampler cmsUInt32Number nInputs, nOutputs; cmsUInt32Number* nSamples; cmsFloat32Number In[MAX_INPUT_DIMENSIONS+1], Out[MAX_STAGE_CHANNELS]; - _cmsStageCLutData* clut = (_cmsStageCLutData*) mpe->Data; + _cmsStageCLutData* clut; + + if (mpe == NULL) return FALSE; + + clut = (_cmsStageCLutData*)mpe->Data; + + if (clut == NULL) return FALSE; nSamples = clut->Params ->nSamples; nInputs = clut->Params ->nInputs; |