ImageMagick-6.9.10-10差分

ImageMagick-6.9.10-9差分 - yoyaのメモの続き

The latest release of ImageMagick is version 6.9.10-10

まとめ

  • ThumbnailImage で EXt 系の、例えば date:create, modify, software, thumb 等が残る問題の修正。作業ディレクトリパスとかも残ってしまう。
気になる事

差分

  • HEIC coder のスレット対応を復帰させた
    • coders/heic.c
379d378
<   entry->thread_support=MagickFalse;
621,622d619
<       {
<         status=MagickFalse;
624d620
<       }
3711c3711
<     *url,
---
>     filename[MaxTextExtent],
3781c3781,3782
<   (void) CopyMagickString(value,image->magick_filename,MaxTextExtent);
---
>   GetPathComponent(image->magick_filename,TailPath,filename);
>   (void) CopyMagickString(value,filename,MaxTextExtent);
3796,3798c3797
<   url=GetMagickHomeURL();
<   (void) SetImageProperty(thumbnail_image,"software",url);
<   url=DestroyString(url);
---
>   (void) SetImageProperty(thumbnail_image,"software",MagickAuthoritativeURL);
ChangeLogにない差分
  • coders/mat.c
(作りかけで大量の差分があるので省略、変数名に迷ったりと色々)
  • coders/xbm.c
    • 数字を表す文字列のパース処理。(最大値のチェックが甘かった)
155,157c155,158
<   while (hex_digits[c] >= 0) {
<     if (value > (unsigned int) (INT_MAX/10))
<       break;
---
>   do
>   {
>     if (value <= (unsigned int) (INT_MAX/16))
>       {
160,161c161
<     if (value > (unsigned int) (INT_MAX-hex_digits[c]))
<       break;
---
>         if (value <= (unsigned int) (INT_MAX-hex_digits[c]))
162a163
>       }
166c167
<   }
---
>   } while (hex_digits[c] >= 0);
  • magick/blob.c
    • GetPathAttributes と fileno(stdin) の順番を入れ替え。
1092a1093,1095
>   file=fileno(stdin);
>   if (LocaleCompare(filename,"-") != 0)
>     {
1099,1100d1101
<   file=fileno(stdin);
<   if (LocaleCompare(filename,"-") != 0)
1101a1103
>     }
  • magick/constitute.c
    • IsSceneGeometry の前に GetNextImageInList チェック
621,622c621
<   if ((GetNextImageInList(image) != (Image *) NULL) &&
<       (IsSceneGeometry(read_info->scenes,MagickFalse) != MagickFalse))
---
>   if (IsSceneGeometry(read_info->scenes,MagickFalse) != MagickFalse)
  • magick/list.c
    • キャスト
    • last が length を超えないようクランプ
    • UndefinedCompression や UndefinedEndian の時*だけ*、前の画像のデータを引き継ぐ

216,220d215< long< first,< last,< step;<
226a222,226
> ssize_t
> first,
> last,
> step;
>
241c241< first=strtol(p,&p,10);

    • -

> first=(ssize_t) strtol(p,&p,10);
243c243,246< first+=(long) length;

    • -

> first+=(ssize_t) length;
> else
> if (first > (ssize_t) length)
> first=(ssize_t) length;
249c252< last=strtol(p+1,&p,10);

    • -

> last=(ssize_t) strtol(p+1,&p,10);
251c254,257< last+=(long) length;

    • -

> last+=(ssize_t) length;
> else
> if (last > (ssize_t) length)
> last=(ssize_t) length;
253c259,260< for (step=first > last ? -1 : 1; first != (last+step); first+=step)

    • -

> step=(ssize_t) (first > last ? -1 : 1);
> for ( ; first != (last+step); first+=step)
1447a1455
> if (images->next->compression == UndefinedCompression)
1448a1457
> if (images->next->endian == UndefinedEndian)
|

1259,1260d1258
<   p=component;
<   if (*p != '\0')
1262c1260,1262
<   if ((*p == ']') && (strchr(component,'[') != (char *) NULL) &&
---
>   q=strrchr(component,'[');
>   if ((strlen(component) > 2) && (*p == ']') && (q != (char *) NULL) &&
>       ((q == component) || (*(q-1) != ']')) &&
1268,1272d1267
<       for (q=p-1; q > component; q--)
<         if (*q == '[')
<           break;
<       if (*q == '[')
<         {
1281d1275
<     }
  • wand/mogrify.c
    • スレッド数設定を OpenMP 直でなく ImageMagick のリソース制限の仕組み(最終的には OpenMP だけど)で行うよう整理。
199c199
<     SetOpenMPMaximumThreads((int) n);
---
>     (void) SetMagickResourceLimit(ThreadResource,(MagickSizeType) n);

ChangeLog

x ImageMagick-6.9.10-10/utilities/montage.1
2018-08-13  6.9.10-10 Cristy  <quetzlzacatenango@image...>
  * Release ImageMagick version 6.9.10-10, GIT revision 13743:8f8009715:20180813

2018-08-12  6.9.10-10 Dirk Lemstra <dirk@lem.....org>
  * Restored thread support for the HEIC coder.

2018-08-08  6.9.10-10 Cristy  <quetzlzacatenango@image...>
  * ThumbnailImage function no longer reveals sensitive information (reference
    https://github.com/ImageMagick/ImageMagick/issues/1243).