From f4ddc727b4b81c8d3ed47b88efa0cadecd380e7a Mon Sep 17 00:00:00 2001 From: Robin Watts Date: Fri, 29 Mar 2013 08:22:34 -0700 Subject: Memory squeezing: More LCMS2 fixes. Fix some broken error code, add some checking where it was missing, and fix a potential leak. --- src/cmslut.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/cmslut.c') diff --git a/src/cmslut.c b/src/cmslut.c index 9032f57..9750f31 100644 --- a/src/cmslut.c +++ b/src/cmslut.c @@ -235,10 +235,10 @@ Error: if (NewElem ->TheCurves != NULL) { for (i=0; i < NewElem ->nCurves; i++) { if (NewElem ->TheCurves[i]) - cmsFreeToneCurve(Data ->TheCurves[i]); + cmsFreeToneCurve(NewElem ->TheCurves[i]); } } - _cmsFree(mpe ->ContextID, Data ->TheCurves); + _cmsFree(mpe ->ContextID, NewElem ->TheCurves); _cmsFree(mpe ->ContextID, NewElem); return NULL; } @@ -1222,9 +1222,13 @@ cmsStage* CMSEXPORT cmsStageDup(cmsStage* mpe) NewMPE ->Implements = mpe ->Implements; - if (mpe ->DupElemPtr) + if (mpe ->DupElemPtr) { NewMPE ->Data = mpe ->DupElemPtr(mpe); - else + if (NewMPE->Data == NULL) { + cmsStageFree(NewMPE); + return NULL; + } + } else NewMPE ->Data = NULL; return NewMPE; -- cgit v1.2.1