ImageMagick-7.0.9-8差分

ImageMagick-7.0.9-8差分

The latest release of ImageMagick is version 7.0.9-8

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

まとめ

気になる事

差分

  • -type bilevel の挙動を戻した。黒と白の画像が作られる。

ChangeLog

2019-12-01  7.0.9-8 Cristy  <quetzlzacatenango@image...>
  * Release ImageMagick version 7.0.9-8, GIT revision 16474:0bc0e95:20191207.

2019-12-01  7.0.9-8 Cristy  <quetzlzacatenango@image...>
  * -type bilevel behavior restored, it creates a black and white image.

ImageMagick-7.0.9-7差分

ImageMagick-7.0.9-7差分

The latest release of ImageMagick is version 7.0.9-7

6 系同時リリースは ImageMagick-6.9.10-77 (あれれ。-76 は?)

まとめ

気になる事

差分

ChangeLog

2019-11-30  7.0.9-7 Cristy  <quetzlzacatenango@image...>
  * Release ImageMagick version 7.0.9-7, GIT revision 16449:971ba06:20191130.

2019-11-26  7.0.9-7 Cristy  <quetzlzacatenango@image...>
  * Support Pocketmod image format, e.g.
    convert -density 300 pages?.pdf pocketmod:organize.pdf
  * Fixed numerous issues  posted to GitHub (reference
    https://github.com/ImageMagick/ImageMagick/issues).
  * Update documentation.

ImageMagick-7.0.9-6差分

ImageMagick-7.0.9-6差分

The latest release of ImageMagick is version 7.0.9-6

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

まとめ

気になる事

差分

* dng:use-camera-wb オプションに対応

ChangeLog

2019-11-26  7.0.9-6 Cristy  <quetzlzacatenango@image...>
  * Release ImageMagick version 7.0.9-6, GIT revision 16407:1725ec3:20191126.

2019-11-19  7.0.9-6 Cristy  <quetzlzacatenango@image...>
  * Increase the maximum number of bezier coordinates (reference
    https://github.com/ImageMagick/ImageMagick/issues/1784).
  * Santize "'" from SHOW and WIN delegates under Linux, '"\' for Windows
    (thanks to Enzo Puig).
  * Correct for TGA orientation (reference
    https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=34757).
  * The result for -compose Copy -extent on a  MYK image is CMYK (reference
    https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=37118).
  * Fix potential buffer overflow when reading a fax image (alert from
    Justin).
  * Support dng:use-camera-wb option.

ImageMagick-7.0.9-5差分

ImageMagick-7.0.9-5差分

The latest release of ImageMagick is version 7.0.9-5

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

まとめ

  • Ascii85 compression がスレッドセーフになった。(今まで危険だった)
    • Ascii85 は base64 の 85版で PDF や PS ファイルで使われる。base64 が 4/3 膨らみ膨らむのに比べて Ascii85 は 5/4 で少しマシ。
気になる事
  • コアな処理のポインタ型に magick_restrict 修飾(C の restrict)をつけまくってる。
  • PNG と WebP でサイズチェック強化

差分

ソースコード

  • MagickCore/compress.c
    • - Ascii85 compression がスレッドセーフだと保証する。(関数内 static char を使い回してたのがまずい。Ascii85Info 構造体を使うようにした)
74a75,77
>   char
>     tuple[6];
>
91,95c94,98
< #define TWId  23
< #define MWId  24
< #define TBId  25
< #define MBId  26
< #define EXId  27
---
> #define TWId  23L
> #define MWId  24L
> #define TBId  25L
> #define MBId  26L
> #define EXId  27L
228c231
< #define MaxLineExtent  36
---
> #define MaxLineExtent  36L
230c233,234
< static char *Ascii85Tuple(unsigned char *data)
---
> static inline void Ascii85Tuple(Ascii85Info *ascii85_info,
>   const unsigned char *magick_restrict data)
232,234d235
<   static char
<     tuple[6];
<
247,249c248,250
<       tuple[0]='z';
<       tuple[1]='\0';
<       return(tuple);
---
>       ascii85_info->tuple[0]='z';
>       ascii85_info->tuple[1]='\0';
>       return;
256c257
<     tuple[i]=(char) (x+(int) '!');
---
>     ascii85_info->tuple[i]=(char) (x+(int) '!');
259,261c260,261
<   tuple[4]=(char) ((code % 85L)+(int) '!');
<   tuple[5]='\0';
<   return(tuple);
---
>   ascii85_info->tuple[4]=(char) ((code % 85L)+(int) '!');
>   ascii85_info->tuple[5]='\0';
274c274
<   image->ascii85->line_break=(ssize_t) MaxLineExtent << 1;
---
>   image->ascii85->line_break=(ssize_t) (MaxLineExtent << 1);
280,282d279
<   register char
<     *tuple;
<
293c290
<       tuple=Ascii85Tuple(image->ascii85->buffer);
---
>       Ascii85Tuple(image->ascii85,image->ascii85->buffer);
295c292,293
<         (const unsigned char *) (*tuple == 'z' ? "!!!!" : tuple));
---
>         (const unsigned char *) (*image->ascii85->tuple == 'z' ? "!!!!" :
>         image->ascii85->tuple));
323c321,322
<     for (q=Ascii85Tuple(p); *q != '\0'; q++)
---
>     Ascii85Tuple(image->ascii85,p);
>     for (q=image->ascii85->tuple; *q != '\0'; q++)
369,373c368,372
< #define HashSize  1021
< #define MBHashA  293
< #define MBHashB  2695
< #define MWHashA  3510
< #define MWHashB  1178
---
> #define HashSize  1021L
> #define MBHashA  293L
> #define MBHashB  2695L
> #define MWHashA  3510L
> #define MWHashB  1178L
6839c6839,6840
<         if (mng_info->magn_methx || mng_info->magn_methy)
---
>         if (((mng_info->magn_methx > 0) && (mng_info->magn_methx <= 5)) &&
>             ((mng_info->magn_methy > 0) && (mng_info->magn_methy <= 5)))
  • coders/webp.c
194c194
<   while ((offset+TAG_SIZE+4) <= (length-TAG_SIZE))
---
>   while (offset <= (length-TAG_SIZE-TAG_SIZE-4))


あとは magick_restrict 追加がいっぱい。

ChangeLog

2019-11-17  7.0.9-5 Cristy  <quetzlzacatenango@image...>
  * Release ImageMagick version 7.0.9-5, GIT revision 16369:747618e:20191117.

2019-11-16  7.0.9-5 Cristy  <quetzlzacatenango@image...>
  * Ensure Ascii85 compression is thread safe.
  * Fixed numerous issues  posted to GitHub (reference
    https://github.com/ImageMagick/ImageMagick/issues).

ImageMagick-7.0.9-4差分

ImageMagick-7.0.9-4差分

The latest release of ImageMagick is version 7.0.9-4

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

まとめ

気になる事
  • MagickCore/nt-base.h の strcasestr を削除して MagickCore/string-private.h に StringLocateSubstring を追加。(プラットフォーム共通化)
  • BMPTIFF のサイズチェックの強化

差分

ソースコード

  • MagickCore/color.c
    • strcasestr の代わりに StringLocateSubstring を使う。
68a69
> #include "MagickCore/string-private.h"
2145c2146
<             if (strcasestr(token,"SVG") != (char *) NULL)
---
>             if (StringLocateSubstring(token,"SVG") != (char *) NULL)
2147c2148
<             if (strcasestr(token,"X11") != (char *) NULL)
---
>             if (StringLocateSubstring(token,"X11") != (char *) NULL)
2149c2150
<             if (strcasestr(token,"XPM") != (char *) NULL)
---
>             if (StringLocateSubstring(token,"XPM") != (char *) NULL)
  • MagickCore/geometry.c
944a945,948
>       {
>         if (*(p+1) == ')')
>           return(flags);
>       }
  • MagickCore/nt-base.h
    • strcasestr の削除。(代わって StringLocateSubstring
332,365d331
< #if !defined(strcasestr)
< static inline char *strcasestr(const char *haystack,const char *needle)
< {
<   size_t
<     length_needle,
<     length_haystack;
<
<   register ssize_t
<     i;
<
<   if (!haystack || !needle)
<     return(NULL);
<   length_needle=strlen(needle);
<   length_haystack=strlen(haystack)-length_needle+1;
<   for (i=0; i < length_haystack; i++)
<   {
<     register size_t
<       j;
<
<     for (j=0; j < length_needle; j++)
<     {
<       unsigned char c1 = haystack[i+j];
<       unsigned char c2 = needle[j];
<       if (toupper(c1) != toupper(c2))
<         goto next;
<     }
<     return((char *) haystack+i);
<     next:
<      ;
<   }
<   return(NULL);
< }
< #endif
  • MagickCore/profile.c
    • strcasestr の代わりに StringLocateSubstring を使う。
65a66
> #include "MagickCore/string-private.h"
1742c1743
<   p=strcasestr((const char *) GetStringInfoDatum(profile),"x:xmpmeta");
---
>   p=StringLocateSubstring((const char *) GetStringInfoDatum(profile),"x:xmpmeta");
1744c1745
<     p=strcasestr((const char *) GetStringInfoDatum(profile),"rdf:RDF");
---
>     p=StringLocateSubstring((const char *) GetStringInfoDatum(profile),"rdf:RDF");
  • MagickCore/string-private.h
    • StringLocateSubstring の追加
47a48,86
> static inline char *StringLocateSubstring(const char *haystack,
>   const char *needle)
> {
> #if defined(MAGICKCORE_HAVE_STRCASESTR)
>   return((char *) strcasestr(haystack,needle));
> #else
>   {
>     size_t
>       length_needle,
>       length_haystack;
>
>     register ssize_t
>       i;
>
>     if (!haystack || !needle)
>       return(NULL);
>     length_needle=strlen(needle);
>     length_haystack=strlen(haystack)-length_needle+1;
>     for (i=0; i < length_haystack; i++)
>     {
>       register size_t
>         j;
>
>       for (j=0; j < length_needle; j++)
>       {
>         unsigned char c1 = haystack[i+j];
>         unsigned char c2 = needle[j];
>         if (toupper(c1) != toupper(c2))
>           goto next;
>       }
>       return((char *) haystack+i);
>       next:
>        ;
>     }
>     return((char *) NULL);
>   }
> #endif
> }
  • coders/bmp.c
    • ヘッダサイズチェックの強化
660,661d659
<         if (bmp_info.size < 40)
<           ThrowReaderException(CorruptImageError,"NonOS2HeaderSizeError");
666a665,666
>         if (bmp_info.size > 16)
>           {
672c672,673
<           ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");
---
>               ThrowReaderException(CorruptImageError,
>                 "InsufficientImageDataInFile");
673a675
>           }
  • coders/ps.c
    • strcasestr の代わりに StringLocateSubstring を使う。
75a76
> #include "MagickCore/string-private.h"
343,345c344,346
<         if ((strcasestr(p,"Cyan") != (char *) NULL) ||
<             (strcasestr(p,"Magenta") != (char *) NULL) ||
<             (strcasestr(p,"Yellow") != (char *) NULL))
---
>         if ((StringLocateSubstring(p,"Cyan") != (char *) NULL) ||
>             (StringLocateSubstring(p,"Magenta") != (char *) NULL) ||
>             (StringLocateSubstring(p,"Yellow") != (char *) NULL))
  • coders/tiff.c
    • サイズチェック強化
1831c1831
<     if (((MagickSizeType) TIFFScanlineSize(tiff)) > (2*GetBlobSize(image)))
---
>     if ((1.0*TIFFScanlineSize(tiff)) > (2.1*GetBlobSize(image)))

ChangeLog

(空っぽ)

ImageMagick-7.0.9-3差分

ImageMagick-7.0.9-3差分

The latest release of ImageMagick is version 7.0.9-3

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

まとめ

気になる事

差分

ChangeLog

2019-11-13  7.0.9-3 Cristy  <quetzlzacatenango@image...>
  * Release ImageMagick version 7.0.9-4, GIT revision 16354:5f53562:20191114.

2019-11-10  7.0.9-3 Cristy  <quetzlzacatenango@image...>
  * Santize ';' from SHOW and WIN delegates.
  * Add exception parameter to CMS transform methods.
  * Output exception there is an attempt to perform an operation not allowed by
    the security policy
  * Fixed numerous issues  posted to GitHub (reference
    https://github.com/ImageMagick/ImageMagick/issues).

ImageMagick-7.0.9-2差分

ImageMagick-7.0.9-2差分

The latest release of ImageMagick is version 7.0.9-2

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

まとめ

気になる事

差分

ChangeLog

2019-10-30  7.0.9-2 Cristy  <quetzlzacatenango@image...>
  * Release ImageMagick version 7.0.9-2, GIT revision 16325:6f84d89:20191030.

2019-10-29  7.0.9-2 Cristy  <quetzlzacatenango@image...>
  * JPEG and JPG are aliases in coder security policy.
  * Fixed numerous issues  posted to GitHub (reference
    https://github.com/ImageMagick/ImageMagick/issues).