diff options
author | Robin Watts <robin@peeves.(none)> | 2013-03-29 08:22:34 -0700 |
---|---|---|
committer | Robin Watts <robin.watts@artifex.com> | 2013-03-29 15:37:28 +0000 |
commit | f4ddc727b4b81c8d3ed47b88efa0cadecd380e7a (patch) | |
tree | 62da1ba598ba6ca76c57b5dc33f6650d68ee2ed3 /src/cmslut.c | |
parent | 9cf2d61867375f867e6e80906a571d222bc2cbf3 (diff) | |
download | lcms2-f4ddc727b4b81c8d3ed47b88efa0cadecd380e7a.tar.gz |
Memory squeezing: More LCMS2 fixes.
Fix some broken error code, add some checking where it was missing, and
fix a potential leak.
Diffstat (limited to 'src/cmslut.c')
-rw-r--r-- | src/cmslut.c | 12 |
1 files changed, 8 insertions, 4 deletions
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; |