| diff --git a/third_party/lcms/src/cmsxform.c b/third_party/lcms/src/cmsxform.c |
| index 9c20c49b0..b3802f0d5 100644 |
| --- a/third_party/lcms/src/cmsxform.c |
| +++ b/third_party/lcms/src/cmsxform.c |
| @@ -761,7 +761,10 @@ _cmsTRANSFORM* AllocEmptyTransform(cmsContext ContextID, cmsPipeline* lut, |
| |
| // Allocate needed memory |
| _cmsTRANSFORM* p = (_cmsTRANSFORM*)_cmsMallocZero(ContextID, sizeof(_cmsTRANSFORM)); |
| - if (!p) return NULL; |
| + if (!p) { |
| + cmsPipelineFree(lut); |
| + return NULL; |
| + } |
| |
| // Store the proposed pipeline |
| p->Lut = lut; |
| @@ -819,7 +822,7 @@ _cmsTRANSFORM* AllocEmptyTransform(cmsContext ContextID, cmsPipeline* lut, |
| if (p ->FromInputFloat == NULL || p ->ToOutputFloat == NULL) { |
| |
| cmsSignalError(ContextID, cmsERROR_UNKNOWN_EXTENSION, "Unsupported raster format"); |
| - _cmsFree(ContextID, p); |
| + cmsDeleteTransform(p); |
| return NULL; |
| } |
| |
| @@ -849,7 +852,7 @@ _cmsTRANSFORM* AllocEmptyTransform(cmsContext ContextID, cmsPipeline* lut, |
| if (p ->FromInput == NULL || p ->ToOutput == NULL) { |
| |
| cmsSignalError(ContextID, cmsERROR_UNKNOWN_EXTENSION, "Unsupported raster format"); |
| - _cmsFree(ContextID, p); |
| + cmsDeleteTransform(p); |
| return NULL; |
| } |
| |