]> granicus.if.org Git - imagemagick/commitdiff
https://github.com/ImageMagick/ImageMagick/issues/1751
authorCristy <urban-warrior@imagemagick.org>
Sun, 13 Oct 2019 16:11:31 +0000 (12:11 -0400)
committerCristy <urban-warrior@imagemagick.org>
Sun, 13 Oct 2019 16:11:31 +0000 (12:11 -0400)
MagickCore/quantum-private.h

index 668f1557c7a60343753de3ba032f5fc4b7bc3d35..a0e964011bb357e39ac0db77563592927654caa9 100644 (file)
@@ -327,7 +327,7 @@ static inline QuantumAny ScaleQuantumToAny(const Quantum quantum,
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((QuantumAny) ((double) range*quantum/QuantumRange));
 #else
-  if (quantum <= 0.0)
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
     return((QuantumAny) 0UL);
   if (((double) range*quantum/QuantumRange) >= 18446744073709551615.0)
     return((QuantumAny) MagickULLConstant(18446744073709551615));
@@ -377,8 +377,8 @@ static inline unsigned int ScaleQuantumToLong(const Quantum quantum)
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((unsigned int) (16843009UL*quantum));
 #else
-  if (quantum <= 0.0)
-    return(0UL);
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
+    return(0U);
   if ((16843009.0*quantum) >= 4294967295.0)
     return(4294967295UL);
   return((unsigned int) (16843009.0*quantum+0.5));
@@ -390,7 +390,7 @@ static inline MagickSizeType ScaleQuantumToLongLong(const Quantum quantum)
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((MagickSizeType) (MagickULLConstant(72340172838076673)*quantum));
 #else
-  if (quantum <= 0.0)
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
     return(0UL);
   if ((72340172838076673.0*quantum) >= 18446744073709551615.0)
     return(MagickULLConstant(18446744073709551615));
@@ -405,8 +405,8 @@ static inline unsigned int ScaleQuantumToMap(const Quantum quantum)
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((unsigned int) quantum);
 #else
-  if (quantum < 0.0)
-    return(0UL);
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
+    return(0U);
   return((unsigned int) (quantum+0.5));
 #endif
 }
@@ -416,7 +416,7 @@ static inline unsigned short ScaleQuantumToShort(const Quantum quantum)
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((unsigned short) (257UL*quantum));
 #else
-  if (quantum <= 0.0)
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
     return(0);
   if ((257.0*quantum) >= 65535.0)
     return(65535);
@@ -478,8 +478,8 @@ static inline unsigned int ScaleQuantumToLong(const Quantum quantum)
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((unsigned int) (65537UL*quantum));
 #else
-  if (quantum <= 0.0)
-    return(0UL);
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
+    return(0U);
   if ((65537.0*quantum) >= 4294967295.0)
     return(4294967295U);
   return((unsigned int) (65537.0*quantum+0.5));
@@ -491,7 +491,7 @@ static inline MagickSizeType ScaleQuantumToLongLong(const Quantum quantum)
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((MagickSizeType) (MagickULLConstant(281479271743489)*quantum));
 #else
-  if (quantum <= 0.0)
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
     return(0UL);
   if ((281479271743489.0*quantum) >= 18446744073709551615.0)
     return(MagickULLConstant(18446744073709551615));
@@ -506,8 +506,8 @@ static inline unsigned int ScaleQuantumToMap(const Quantum quantum)
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((unsigned int) quantum);
 #else
-  if (quantum < 0.0)
-    return(0UL);
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
+    return(0U);
   return((unsigned int) (quantum+0.5));
 #endif
 }
@@ -517,7 +517,7 @@ static inline unsigned short ScaleQuantumToShort(const Quantum quantum)
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((unsigned short) quantum);
 #else
-  if (quantum <= 0.0)
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
     return(0);
   if (quantum >= 65535.0)
     return(65535);
@@ -571,8 +571,8 @@ static inline unsigned int ScaleQuantumToLong(const Quantum quantum)
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((unsigned int) quantum);
 #else
-  if (quantum <= 0.0)
-    return(0);
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
+    return(0U);
   if ((quantum) >= 4294967295.0)
     return(4294967295);
   return((unsigned int) (quantum+0.5));
@@ -584,7 +584,7 @@ static inline MagickSizeType ScaleQuantumToLongLong(const Quantum quantum)
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((MagickSizeType) (MagickULLConstant(4294967297)*quantum));
 #else
-  if (quantum <= 0.0)
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
     return(0UL);
   if ((4294967297.0*quantum) >= 18446744073709551615.0)
     return(MagickULLConstant(18446744073709551615));
@@ -594,8 +594,8 @@ static inline MagickSizeType ScaleQuantumToLongLong(const Quantum quantum)
 
 static inline unsigned int ScaleQuantumToMap(const Quantum quantum)
 {
-  if (quantum < 0.0)
-    return(0UL);
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
+    return(0U);
   if ((quantum/65537) >= (Quantum) MaxMap)
     return((unsigned int) MaxMap);
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
@@ -612,7 +612,7 @@ static inline unsigned short ScaleQuantumToShort(const Quantum quantum)
   return((unsigned short) ((quantum+MagickULLConstant(32768))/
     MagickULLConstant(65537)));
 #else
-  if (quantum <= 0.0)
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
     return(0);
   if ((quantum/65537.0) >= 65535.0)
     return(65535);
@@ -663,8 +663,8 @@ static inline MagickSizeType ScaleQuantumToLongLong(const Quantum quantum)
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((MagickSizeType) quantum);
 #else
-  if (quantum <= 0.0)
-    return(0);
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
+    return(0UL);
   if (quantum >= 18446744073709551615.0)
     return(MagickULLConstant(18446744073709551615));
   return((MagickSizeType) (quantum+0.5));
@@ -673,8 +673,8 @@ static inline MagickSizeType ScaleQuantumToLongLong(const Quantum quantum)
 
 static inline unsigned int ScaleQuantumToMap(const Quantum quantum)
 {
-  if (quantum <= 0.0)
-    return(0UL);
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
+    return(0U);
   if ((quantum/281479271743489.0) >= MaxMap)
     return((unsigned int) MaxMap);
   return((unsigned int) (quantum/281479271743489.0+0.5));
@@ -682,7 +682,7 @@ static inline unsigned int ScaleQuantumToMap(const Quantum quantum)
 
 static inline unsigned short ScaleQuantumToShort(const Quantum quantum)
 {
-  if (quantum <= 0.0)
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
     return(0);
   if ((quantum/281479271743489.0) >= 65535.0)
     return(65535);