diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index 08fe8db0e..c30df4d7a 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -4682,8 +4682,8 @@ void ImProcFunctions::chromiLuminanceCurve (PipetteBuffer *pipetteBuffer, int pW factorsat = chromaCfactor; factor = factorsat; Color::transitred ( HH, Chprov1, dred, factorskin, protect_redcur, factorskinext, deltaHH, factorsat, factor); - atmp *= factor; - btmp *= factor; + atmp = LIM(atmp * factor, min(-42000.f, atmp), max(42000.f, atmp)); + btmp = LIM(btmp * factor, min(-42000.f, btmp), max(42000.f, btmp)); } // end C=f(L) diff --git a/rtengine/iplab2rgb.cc b/rtengine/iplab2rgb.cc index fe8590470..0c1e00774 100644 --- a/rtengine/iplab2rgb.cc +++ b/rtengine/iplab2rgb.cc @@ -38,7 +38,7 @@ inline void clipLAB(float iL, float ia, float ib, float &oL, float &oa, float &o { if (iL < 0.f) { oL = oa = ob = 0.f; - } else if (iL > 32768.f) { + } else if (iL > 32768.f || min(ia, ib) < -42000.f || max(ia, ib) > 42000.f) { float X, Y, Z; float r, g, b;