ImageMagick-7.0.8-33差分

ImageMagick-7.0.8-33差分

http://www.imagemagick.org/script/download.php
The latest release of ImageMagick is version 7.0.8-33

6 系同時リリースは ImageMagick-6.9.10-33

まとめ

  • JPEG の DCT メソッドデフォルトが以前はQuality:1〜90 の時(つまり殆どの場合) IFACT だったのが、元々の ISLOW に戻った。
気になる事
  • JPEG で DCT メソッド未指定で普通に使う(q:1〜90)とき以前は IDCT だったのをやめた。JDCT_ISLOW のまま。
  • draw.c で NegateImage を呼ぶのをやめてる箇所

差分

  • リサイズした後、primitive drawing structure を初期化。
    • MagickCore/draw.c
2262a2263,2264
>           for (i=mvg_info->offset+1; i < (ssize_t) extent; i++)
>             (*mvg_info->primitive_info)[i].primitive=UndefinedPrimitive;

ChangeLog にない差分

  • MagickCore/draw.c
    • NegateImage を単純にやめてる?????
1597,1599d1596
<       status=NegateImage(clip_mask,MagickFalse,exception);
<       if (status == MagickFalse)
<         clip_mask=DestroyImage(clip_mask);
2261a2259,2261
>           register ssize_t
>             i;
    • MVGMacroCompare の追加
2280a2283,2293
> MagickExport int MVGMacroCompare(const void *target,const void *source)
> {
>   const char
>     *p,
>     *q;
>
>   p=(const char *) target;
>   q=(const char *) source;
>   return(strcmp(p,q));
> }
>
2301c2314
<   macros=NewSplayTree(CompareSplayTreeString,RelinquishMagickMemory,
---
>   macros=NewSplayTree(MVGMacroCompare,RelinquishMagickMemory,
2493c2506
<         return(status);
---
>         return(MagickFalse);
  • coders/dpx.c
    • dpx.file.creator に GetMagickHomeURL でなく MagickAuthoritativeURL を入れる。
1464,1466d1463
<   char
<     *url;
<
1598,1600c1595,1596
<   url=GetMagickHomeURL();
<   (void) strncpy(dpx.file.creator,url,sizeof(dpx.file.creator)-1);
<   url=DestroyString(url);
---
>   (void) strncpy(dpx.file.creator,MagickAuthoritativeURL,
>     sizeof(dpx.file.creator)-1);
  • coders/gif.c
    • 優先度に合わせてかっこを正しくつける。
1099c1099
<               if (((ssize_t) count+offset+MagickPathExtent) >= (ssize_t) extent)
---
>               if ((ssize_t) (count+offset+MagickPathExtent) >= (ssize_t) extent)
  • coders/heic.c
    • キャストを追加。かっこの見直し
272c272
<       exif_buffer=RelinquishMagickMemory(exif_buffer);
---
>       exif_buffer=(unsigned char *) RelinquishMagickMemory(exif_buffer);
592c592
<   (void) WriteBlob(image,size,data);
---
>   (void) WriteBlob(image,size,(const unsigned char *) data);
713c713
<               if (x+1 < (long) image->columns)
---
>               if ((x+1) < (ssize_t) image->columns)
  • coders/jpeg.c
    • DCTメソッド指定なしで quality が 1〜90 の時に IFAST にする処理を取りやめ。
1384,1386d1383
<   if ((dct_method == (const char *) NULL) && (image->quality > 0) &&
<       (image->quality <= 90))
<     jpeg_info.dct_method=JDCT_IFAST;
  • coders/mat.c
    • 終了条件のチェックを増やした (OSS-Fuzz の指摘で脆弱性対応。-34 の ChangeLog のやつ)
1311c1311,1312
<
---
>     if (i != (long) MATLAB_HDR.SizeY)
>       goto END_OF_READING;
1327a1329,1330
>           if (EOFBlob(image) != MagickFalse)
>             break;
1335a1339,1340
>           if (EOFBlob(image) != MagickFalse)
>             break;
  • coders/pdb.c
    • pdb_info.name 文字列最大長制限
75a76
> #include "MagickCore/utility.h"
741a743,745
>   char
>     filename[MagickPathExtent];
>
810,811c814,815
<   (void) CopyMagickString(pdb_info.name,image_info->filename,
<     sizeof(pdb_info.name));
---
>   GetPathComponent(image_info->filename,TailPath,filename);
>   (void) CopyMagickString(pdb_info.name,filename,sizeof(pdb_info.name));
  • coders/psd.c
    • マスク画像のリセット。
1385a1386
>           (void) ResetImagePixels(mask,exception);
  • coders/tiff.c
    • 未使用の変数をコードから削除
715d714
<     length,

ChangeLog

2019-03-08  7.0.8-33 Cristy  <quetzlzacatenango@image...>
  * Release ImageMagick version 7.0.8-33, GIT revision 15399:716ec522c:20190309

2019-03-06  7.0.8-33 Cristy  <quetzlzacatenango@image...>
  * Fix SVG conversion infinite loop (reference
    https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=35591).
  * Initialize primitive drawing structure after resizing.