From: Cristy Date: Wed, 31 Jan 2018 23:44:33 +0000 (-0500) Subject: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5850 X-Git-Tag: 7.0.7-23~198 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7b5cbbd4f3ae8065820bb6af8edc83eb1060132e;p=imagemagick https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5850 --- diff --git a/MagickCore/composite.c b/MagickCore/composite.c index 5d75eb5fb..eaa0690ae 100644 --- a/MagickCore/composite.c +++ b/MagickCore/composite.c @@ -1772,8 +1772,8 @@ MagickExport MagickBooleanType CompositeImage(Image *image, if ((Sca*Da+Dca*Sa) >= Sa*Da) pixel=QuantumRange*gamma*(Sa*Da+Sca*(1.0-Da)+Dca*(1.0-Sa)); else - pixel=QuantumRange*gamma*(Dca*Sa*Sa/(Sa-Sca)+Sca*(1.0-Da)+Dca* - (1.0-Sa)); + pixel=QuantumRange*gamma*(Dca*Sa*Sa*PerceptibleReciprocal(Sa-Sca)+ + Sca*(1.0-Da)+Dca*(1.0-Sa)); break; } case ColorizeCompositeOp: @@ -2310,12 +2310,12 @@ MagickExport MagickBooleanType CompositeImage(Image *image, } if ((2.0*Sca) <= Sa) { - pixel=QuantumRange*gamma*(Sa*(Da+Sa*(Dca-Da)/(2.0*Sca))+Sca* - (1.0-Da)+Dca*(1.0-Sa)); + pixel=QuantumRange*gamma*(Sa*(Da+Sa*(Dca-Da)* + PerceptibleReciprocal(2.0*Sca))+Sca*(1.0-Da)+Dca*(1.0-Sa)); break; } - pixel=QuantumRange*gamma*(Dca*Sa*Sa/(2.0*(Sa-Sca))+Sca*(1.0-Da)+Dca* - (1.0-Sa)); + pixel=QuantumRange*gamma*(Dca*Sa*Sa*PerceptibleReciprocal(2.0* + (Sa-Sca))+Sca*(1.0-Da)+Dca*(1.0-Sa)); break; } case XorCompositeOp: