summaryrefslogtreecommitdiff
path: root/src/cmslut.c
diff options
context:
space:
mode:
authorRobin Watts <robin@peeves.(none)>2013-03-29 08:22:34 -0700
committerRobin Watts <robin.watts@artifex.com>2013-03-29 15:37:28 +0000
commitf4ddc727b4b81c8d3ed47b88efa0cadecd380e7a (patch)
tree62da1ba598ba6ca76c57b5dc33f6650d68ee2ed3 /src/cmslut.c
parent9cf2d61867375f867e6e80906a571d222bc2cbf3 (diff)
downloadlcms2-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.c12
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;