ImageMagick-7.0.8-34差分

ImageMagick-7.0.8-34差分

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

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

まとめ

  • Fuzzing 修正。そう ChangeLog にあるが実は -33 で入ってる => coders/mat.c のファイル終了チェック追加
  • ピクセルキャッシュとリソースセマフォ管理で性能改善
気になる事
  • PixelCache の縦横サイズに ResourceLimit を有効にした

差分

  • 各リソースひとつひとつにロックを割り当てる。それらが競合しないように。
    • MagickCore/resource.c
73a74,75
> #define NumberOfResourceTypes  \
>   (sizeof(resource_semaphore)/sizeof(*resource_semaphore))
141c143,156
<   *resource_semaphore = (SemaphoreInfo *) NULL;
---
>   *resource_semaphore[] = {
>      (SemaphoreInfo *) NULL,
>      (SemaphoreInfo *) NULL,
>      (SemaphoreInfo *) NULL,
>      (SemaphoreInfo *) NULL,
>      (SemaphoreInfo *) NULL,
>      (SemaphoreInfo *) NULL,
>      (SemaphoreInfo *) NULL,
>      (SemaphoreInfo *) NULL,
>      (SemaphoreInfo *) NULL,
>      (SemaphoreInfo *) NULL,
>      (SemaphoreInfo *) NULL,
>      (SemaphoreInfo *) NULL
>   };
  • TIFF がうまく開けなかった時の例外レポート
1331a1332,1337
>   if (exception->severity > ErrorException)
>     {
>       TIFFClose(tiff);
>       image=DestroyImageList(image);
>       return((Image *) NULL);
>     }
  • 沢山の修正。未初期化値、整数オーバーフロー、メモリ溢れ、タイムアウト。(OSS Fuzz の貢献)
    • -33 の coders/mat.c 修正がそれ。ファイルの終了判定を増やしてる。

ChangeLog にない差分

  • MagickCore/cache.c
    • PixelCache の縦横サイズに ResourceLimit が有効にした
224a225,226
>   cache_info->width_limit=GetMagickResourceLimit(WidthResource);
>   cache_info->height_limit=GetMagickResourceLimit(HeightResource);

ChangeLog

2019-03-11  7.0.8-34 Cristy  <quetzlzacatenango@image...>
  * Associate one lock with each resource.
  * Report exception if opening TIFF did not work out.
  * Fixed numerous use of uninitialized values, integer overflow, memory
    exceeded, and timeouts (credit to OSS Fuzz).