File ImageMagick-CVE-2020-27774,27766,27776.patch of Package ImageMagick
Index: ImageMagick-6.8.8-1/magick/statistic.c
===================================================================
--- ImageMagick-6.8.8-1.orig/magick/statistic.c 2020-12-04 10:05:55.549697174 +0100
+++ ImageMagick-6.8.8-1/magick/statistic.c 2020-12-04 10:05:55.825698932 +0100
@@ -245,6 +245,9 @@ static MagickRealType ApplyEvaluateOpera
MagickRealType
result;
+ register ssize_t
+ i;
+
result=0.0;
switch (op)
{
@@ -314,7 +317,9 @@ static MagickRealType ApplyEvaluateOpera
}
case LeftShiftEvaluateOperator:
{
- result=(MagickRealType) ((size_t) pixel << (size_t) (value+0.5));
+ result=(double) pixel;
+ for (i=0; i < (ssize_t) value; i++)
+ result*=2.0;
break;
}
case LogEvaluateOperator:
@@ -374,7 +379,9 @@ static MagickRealType ApplyEvaluateOpera
}
case RightShiftEvaluateOperator:
{
- result=(MagickRealType) ((size_t) pixel >> (size_t) (value+0.5));
+ result=(MagickRealType) pixel;
+ for (i=0; i < (ssize_t) value; i++)
+ result/=2.0;
break;
}
case SetEvaluateOperator: