diff --git a/src/cmsopt.c b/src/cmsopt.c index 85cc7f2b..890c125f 100644 --- a/src/cmsopt.c +++ b/src/cmsopt.c @@ -1206,7 +1206,8 @@ cmsBool OptimizeByComputingLinearization(cmsPipeline** Lut, cmsUInt32Number Inte Prelin8Data* p8 = PrelinOpt8alloc(OptimizedLUT ->ContextID, OptimizedPrelinCLUT ->Params, OptimizedPrelinCurves); - if (p8 == NULL) return FALSE; + if (p8 == NULL) + goto Error2; _cmsPipelineSetOptimizationParameters(OptimizedLUT, PrelinEval8, (void*) p8, Prelin8free, Prelin8dup); @@ -1216,7 +1217,8 @@ cmsBool OptimizeByComputingLinearization(cmsPipeline** Lut, cmsUInt32Number Inte Prelin16Data* p16 = PrelinOpt16alloc(OptimizedLUT ->ContextID, OptimizedPrelinCLUT ->Params, 3, OptimizedPrelinCurves, 3, NULL); - if (p16 == NULL) return FALSE; + if (p16 == NULL) + goto Error2; _cmsPipelineSetOptimizationParameters(OptimizedLUT, PrelinEval16, (void*) p16, PrelinOpt16free, Prelin16dup); @@ -1249,6 +1251,8 @@ cmsBool OptimizeByComputingLinearization(cmsPipeline** Lut, cmsUInt32Number Inte } if (LutPlusCurves != NULL) cmsPipelineFree(LutPlusCurves); + +Error2: if (OptimizedLUT != NULL) cmsPipelineFree(OptimizedLUT); return FALSE;