diff --git a/src/cmscgats.c b/src/cmscgats.c index 862eb919..1740881b 100644 --- a/src/cmscgats.c +++ b/src/cmscgats.c @@ -3253,11 +3253,13 @@ cmsHPROFILE CMSEXPORT cmsCreateDeviceLinkFromCubeFileTHR(cmsContext ContextID, c if (Shaper != NULL) { if (!cmsPipelineInsertStage(Pipeline, cmsAT_BEGIN, Shaper)) goto Done; + Shaper = NULL; } if (CLUT != NULL) { if (!cmsPipelineInsertStage(Pipeline, cmsAT_END, CLUT)) goto Done; + CLUT = NULL; } // Propagate the description. We put no copyright because we know @@ -3270,6 +3272,11 @@ cmsHPROFILE CMSEXPORT cmsCreateDeviceLinkFromCubeFileTHR(cmsContext ContextID, c if (!cmsWriteTag(hProfile, cmsSigAToB0Tag, (void*)Pipeline)) goto Done; Done: + if (CLUT != NULL) + cmsStageFree(CLUT); + + if (Shaper != NULL) + cmsStageFree(Shaper); if (DescriptionMLU != NULL) cmsMLUfree(DescriptionMLU); diff --git a/src/cmslut.c b/src/cmslut.c index 10891486..329731e8 100644 --- a/src/cmslut.c +++ b/src/cmslut.c @@ -1521,7 +1521,11 @@ int CMSEXPORT cmsPipelineInsertStage(cmsPipeline* lut, cmsStageLoc loc, cmsStage cmsStage* Anterior = NULL, *pt; if (lut == NULL || mpe == NULL) + { + if (mpe) + cmsStageFree(mpe); return FALSE; + } switch (loc) {