diff options
author | Marti Maria <marti.maria@littlecms.com> | 2023-01-03 11:24:47 +0100 |
---|---|---|
committer | Marti Maria <marti.maria@littlecms.com> | 2023-01-03 11:24:47 +0100 |
commit | 37eddd2d8787dbc5d707044cab0762bfc879fb3e (patch) | |
tree | 54337e1bfd4d47b86a76178605ee1bfb2ca6fc9d | |
parent | ef7bd0de652e2a3295026093225c7820611ee0c8 (diff) | |
download | lcms2-37eddd2d8787dbc5d707044cab0762bfc879fb3e.tar.gz |
sanitize cmsBuildTabulatedToneCurveFloat against bad API usage
sanitize cmsBuildTabulatedToneCurveFloat against bad API usage
Fix for #351
-rw-r--r-- | src/cmscnvrt.c | 2 | ||||
-rw-r--r-- | src/cmsgamma.c | 4 | ||||
-rw-r--r-- | testbed/new.icc | bin | 25244 -> 67268 bytes |
3 files changed, 5 insertions, 1 deletions
diff --git a/src/cmscnvrt.c b/src/cmscnvrt.c index e8a51ae..bca5796 100644 --- a/src/cmscnvrt.c +++ b/src/cmscnvrt.c @@ -234,7 +234,7 @@ cmsFloat64Number CHAD2Temp(const cmsMAT3* Chad) // Compute a CHAD based on a given temperature static - void Temp2CHAD(cmsMAT3* Chad, cmsFloat64Number Temp) +void Temp2CHAD(cmsMAT3* Chad, cmsFloat64Number Temp) { cmsCIEXYZ White; cmsCIExyY ChromaticityOfWhite; diff --git a/src/cmsgamma.c b/src/cmsgamma.c index 94c0aef..5abbf16 100644 --- a/src/cmsgamma.c +++ b/src/cmsgamma.c @@ -823,6 +823,10 @@ cmsToneCurve* CMSEXPORT cmsBuildTabulatedToneCurveFloat(cmsContext ContextID, cm { cmsCurveSegment Seg[3]; + // Do some housekeeping + if (nEntries == 0 || values == NULL) + return NULL; + // A segmented tone curve should have function segments in the first and last positions // Initialize segmented curve part up to 0 to constant value = samples[0] Seg[0].x0 = MINUS_INF; diff --git a/testbed/new.icc b/testbed/new.icc Binary files differindex bd90c3d..1752f99 100644 --- a/testbed/new.icc +++ b/testbed/new.icc |