]> granicus.if.org Git - imagemagick/commitdiff
Eliminate a composite divide by zero
authorCristy <urban-warrior@imagemagick.org>
Tue, 23 Jan 2018 17:54:47 +0000 (12:54 -0500)
committerCristy <urban-warrior@imagemagick.org>
Tue, 23 Jan 2018 17:54:47 +0000 (12:54 -0500)
Credit OSS Fuzz

MagickCore/composite.c

index 80f230aa421e18aac08fea2cf5688dc876def670..5b860440665510c15a22b0eb8365233f7dd04148 100644 (file)
@@ -1761,8 +1761,10 @@ MagickExport MagickBooleanType CompositeImage(Image *image,
                 pixel=QuantumRange*gamma*(Dca*(1.0-Sa));
                 break;
               }
-            pixel=QuantumRange*gamma*(Sa*Da-Sa*Da*MagickMin(1.0,(1.0-Dca/Da)*Sa/
-              Sca)+Sca*(1.0-Da)+Dca*(1.0-Sa));
+            pixel=0.0;
+            if ((IsNaN(Da) != MagickFalse) && (IsNaN(Sca) != MagickFalse))
+              pixel=QuantumRange*gamma*(Sa*Da-Sa*Da*MagickMin(1.0,(1.0-Dca/Da)*
+                Sa/Sca)+Sca*(1.0-Da)+Dca*(1.0-Sa));
             break;
           }
           case ColorDodgeCompositeOp: