File ImageMagick-CVE-2020-27773.patch of Package ImageMagick.30356
diff --git a/MagickCore/gem-private.h b/MagickCore/gem-private.h
index fa7bd12ab8..0b78788578 100644
--- a/MagickCore/gem-private.h
+++ b/MagickCore/gem-private.h
@@ -107,6 +107,9 @@ static inline void ConvertLabToXYZ(const double L,const double a,const double b,
static inline void ConvertLuvToXYZ(const double L,const double u,const double v,
double *X,double *Y,double *Z)
{
+ double
+ gamma;
+
assert(X != (double *) NULL);
assert(Y != (double *) NULL);
assert(Z != (double *) NULL);
@@ -114,9 +117,10 @@ static inline void ConvertLuvToXYZ(const double L,const double u,const double v,
*Y=(double) pow((L+16.0)/116.0,3.0);
else
*Y=L/CIEK;
- *X=((*Y*((39.0*L/(v+13.0*L*(9.0*D65Y/(D65X+15.0*D65Y+3.0*D65Z))))-5.0))+
- 5.0*(*Y))/((((52.0*L/(u+13.0*L*(4.0*D65X/(D65X+15.0*D65Y+3.0*D65Z))))-1.0)/
- 3.0)-(-1.0/3.0));
+ gamma=PerceptibleReciprocal((((52.0*L/(u+13.0*L*(4.0*D65X/(D65X+15.0*D65Y+
+ 3.0*D65Z))))-1.0)/3.0)-(-1.0/3.0));
+ *X=gamma*((*Y*((39.0*L/(v+13.0*L*(9.0*D65Y/(D65X+15.0*D65Y+3.0*D65Z))))-5.0))+
+ 5.0*(*Y));
*Z=(*X*(((52.0*L/(u+13.0*L*(4.0*D65X/(D65X+15.0*D65Y+3.0*D65Z))))-1.0)/3.0))-
5.0*(*Y);
}