ImageMagick-7.0.8-37差分
ImageMagick-7.0.8-37差分
http://www.imagemagick.org/script/download.php
The latest release of ImageMagick is version 7.0.8-37
6 系同時リリースは ImageMagick-6.9.10-37
まとめ
(調査中)
気になる事
差分
- Fixed -virtual-pixel オプションの修正
ChangeLog にない差分
(調査中)
ChangeLog
2019-04-03 7.0.8-37 Cristy <quetzlzacatenango@image...> * Release ImageMagick version 7.0.8-37, GIT revision 15470:477216fd7:20190403 2019-04-03 7.0.8-37 Cristy <quetzlzacatenango@image...> * Fixed -virtual-pixel option (reference https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=35789).
ImageMagick-7.0.8-36差分
ImageMagick-7.0.8-36差分
http://www.imagemagick.org/script/download.php
The latest release of ImageMagick is version 7.0.8-36
6 系同時リリースは ImageMagick-6.9.10-36
差分
- issue に挙がった件の修正
ChangeLog にない差分
(調査中)
ChangeLog
2019-03-31 7.0.8-36 Cristy <quetzlzacatenango@image...> * Release ImageMagick version 7.0.8-36, GIT revision 15464:3a928224d:20190331 2019-03-27 7.0.8-36 Cristy <quetzlzacatenango@image...> * Fixed a number of issues (reference https://github.com/ImageMagick/ImageMagick/issues).
ImageMagick-7.0.8-35差分
ImageMagick-7.0.8-35差分
http://www.imagemagick.org/script/download.php
The latest release of ImageMagick is version 7.0.8-35
6 系同時リリースは ImageMagick-6.9.10-35
まとめ
- -draw "image DstOver 〜" で composite operator の DstOver 相当の結果にならない不具合修正
- draw が DstOver に対応してない問題なので、-compose dstover で回避できる
- その他 issue 消化
- CVE-2019-9956: PSファイル PopHexPixel 脆弱性の修正
気になる事
差分
-
- -draw の画像 DstOver が composite operator に対応しました。
- issue に挙がった件の修正
ChangeLog にない差分
- MagickCore/cache.c
- SetPixelCacheNexusPixels の引数に magick_restrict 修飾子(?)がついた
138,140c138,141 < *SetPixelCacheNexusPixels(const CacheInfo *,const MapMode,const ssize_t, < const ssize_t,const size_t,const size_t,const MagickBooleanType, < NexusInfo *,ExceptionInfo *) magick_hot_spot; --- > *SetPixelCacheNexusPixels(const CacheInfo *magick_restrict,const MapMode, > const ssize_t,const ssize_t,const size_t,const size_t, > const MagickBooleanType,NexusInfo *magick_restrict,ExceptionInfo *) > magick_hot_spot;
- coders/ps.c
- CVE-2019-9956: PSファイル PopHexPixel 脆弱性の修正
q=PopHexPixel(hex_digits,(size_t) MagickMin(length,0xff),q); MagickMin(length,0xff),q); if ((q-pixels+6) >= 80) { *q++='\n'; (void) WriteBlob(image,q-pixels,pixels); q=pixels; }
ChangeLog
2019-03-24 7.0.8-35 Cristy <quetzlzacatenango@image...> * Release ImageMagick version 7.0.8-35, GIT revision 15440:4a0a88e41:20190324 2019-03-23 7.0.8-35 Cristy <quetzlzacatenango@image...> * -draw image DstOver is now responsive to the composite operator (reference https://imagemagick.org/discourse-server/viewtopic.php?f=1&t=35650). * Fixed a number of issues (reference https://github.com/ImageMagick/ImageMagick/issues).
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
まとめ
気になる事
- 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 > };
1331a1332,1337 > if (exception->severity > ErrorException) > { > TIFFClose(tiff); > image=DestroyImageList(image); > return((Image *) NULL); > }
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).
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;
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;
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.
ImageMagick-7.0.8-32差分
ImageMagick-7.0.8-32差分
http://www.imagemagick.org/script/download.php
The latest release of ImageMagick is version 7.0.8-32
6 系同時リリースは ImageMagick-6.9.10-32
差分
- LocaleLowerCase() で範囲外(アクセス)の修正
1523a1524,1525 > if (c == EOF) > return(c); 1526c1528 < return(tolower_l(c,c_locale)); --- > return(tolower_l((int) ((unsigned char) c),c_locale)); 1528c1530 < return(tolower(c)); --- > return(tolower((int) ((unsigned char) c))); 1661a1664,1665 > if (c == EOF) > return(c); 1664c1668 < return(toupper_l(c,c_locale)); --- > return(toupper_l((int) ((unsigned char) c),c_locale)); 1666c1670 < return(toupper(c)); --- > return(toupper((int) ((unsigned char) c)));
第一引数の c を 0〜255 の範囲に閉じ込めてる。
ChangeLog にない差分
(なし)
ChangeLog
2019-03-05 7.0.8-32 Cristy <quetzlzacatenango@image...> * Release ImageMagick version 7.0.8-32, GIT revision ... 2019-03-05 7.0.8-32 Cristy <quetzlzacatenango@image...> * Fix out-of-boundary LocaleLowerCase() @ https://github.com/ImageMagick/ImageMagick/issues/1495
ImageMagick-7.0.8-29差分
ImageMagick-7.0.8-29差分
http://www.imagemagick.org/script/download.php
The latest release of ImageMagick is version 7.0.8-29
6 系同時リリースは ImageMagick-6.9.10-29
まとめ
- OSS Fuzz の指摘対応とその他。
気になる事
- -trim に -define trim:blend=(0〜100) を追加。 GetImageBoundingBox がだいぶ改造されてる。
- -draw で dash(点線) の間隔に比べて描画線が短い時の処理が変更されてる。
- cms の ContextID の使い方が怪しい。。
- length を extent に変えてるけど、これ後悔しないかな。。 extent は意味がぶれるので。
差分
ChangeLog にない差分
- MagickCore/attribute.c
91a92 > #include "MagickCore/string-private.h" 125,126c126,138 < MagickExport RectangleInfo GetImageBoundingBox(const Image *image, < ExceptionInfo *exception) --- > > typedef struct _EdgeInfo > { > double > left, > right, > top, > bottom; > } EdgeInfo; > > static double GetEdgeBlendFactor(const Image *image,const CacheView *image_view, > const GravityType gravity,const size_t width,const size_t height, > const ssize_t x_offset,const ssize_t y_offset,ExceptionInfo *exception) 129c141 (大量の差分)
- MagickCore/draw.c
- 点線のひとつひとつの長さに満たない線を処理する時の変更。
1810 if (fabs(length) < MagickEpsilon) { > if (fabs(draw_info->dash_pattern[n]) >= MagickEpsilon) > n++; if (fabs(draw_info->dash_pattern[n]) < MagickEpsilon) n=0; length=scale*draw_info->dash_pattern[n]; } 1842a1845 if (fabs(draw_info->dash_pattern[n]) >= MagickEpsilon) n++;
- MagickCore/magick-baseconfig.h
- MAGICKCORE_FONTCONFIG_DELEGATE が undefined の時の対処。デフォルト 1 扱い。
84,86c84 < #ifndef MAGICKCORE_FONTCONFIG_DELEGATE < #define MAGICKCORE_FONTCONFIG_DELEGATE 1 < #endif
- MagickCore/profile.c
- Context ID にスタック変数のポインタ渡してるように見えるけど、大丈夫だっけ。。?
433c433,434 < const int intent,const cmsUInt32Number flags) --- > const int intent,const cmsUInt32Number flags, > CMSExceptionInfo *cms_exception) 452,453c453,454 < transform[i]=cmsCreateTransformTHR((cmsContext) image,source_profile, < source_type,target_profile,target_type,intent,flags); --- > transform[i]=cmsCreateTransformTHR((cmsContext) cms_exception, > source_profile,source_type,target_profile,target_type,intent,flags); 1136c1137,1138 < source_type,target_profile,target_type,intent,flags); --- > source_type,target_profile,target_type,intent,flags, > &cms_exception);
- coders/jp2.c
- デコードエリアの指定。変数名 length => extent 変更。
380a381,383 > jp2_status=opj_set_decode_area(jp2_codec,jp2_image,0,0, > jp2_image->comps[0].w-1,jp2_image->comps[0].h-1); > if (jp2_status != 0) diff -rwB ImageMagick-7.0.8-28/coders/miff.c ImageMagick-7.0.8-29/coders/miff.c 1143c1143 < length=MagickPathExtent; --- > extent=MagickPathExtent; 1145a1146 > length=0; 1149c1150 < if ((strlen(image->directory)+MagickPathExtent) >= length) --- > if ((length+MagickPathExtent) >= extent) 1154c1155 < length<<=1; --- > extent<<=1; 1156c1157 < length+MagickPathExtent,sizeof(*image->directory)); --- > extent+MagickPathExtent,sizeof(*image->directory)); 1159c1160 < p=image->directory+strlen(image->directory); --- > p=image->directory+length; 1164a1166 > length++;
- coders/mpc.c
- 変数名変更 length=>extent
181a182 > extent, 812c813 < length=MagickPathExtent; --- > extent=MagickPathExtent; 814a816 > length=0; 818c820 < if ((strlen(image->directory)+MagickPathExtent) >= length) --- > if ((length+MagickPathExtent) >= extent) 823c825 < length<<=1; --- > extent<<=1; 825c827 < length+MagickPathExtent,sizeof(*image->directory)); --- > extent+MagickPathExtent,sizeof(*image->directory)); 833c835 < p=image->directory+strlen(image->directory); --- > p=image->directory+length; 838a841 > length++;
- coders/pango.c
- pango:align の実装
330a331,340 > option=GetImageOption(image_info,"pango:align"); > if (option != (const char *) NULL) > { > if (LocaleCompare(option,"center") == 0) > align=PANGO_ALIGN_CENTER; > if (LocaleCompare(option,"left") == 0) > align=PANGO_ALIGN_LEFT; > if (LocaleCompare(option,"right") == 0) > align=PANGO_ALIGN_RIGHT; > }
- coders/pdf.c
- CoderDecoderSeekableStreamFlag のフラグセット
921a922 > entry->flags|=CoderDecoderSeekableStreamFlag; 929a931 > entry->flags|=CoderDecoderSeekableStreamFlag; 937a940 > entry->flags|=CoderDecoderSeekableStreamFlag;
718,720d717 < unsigned long < *tietz; < 795,800d791 < if ((TIFFGetField(tiff,37706,&length,&tietz) == 1) && < (tietz != (unsigned long *) NULL)) < { < (void) FormatLocaleString(message,MagickPathExtent,"%lu",tietz[0]); < (void) SetImageProperty(image,"tiff:tietz_offset",message,exception); < }
- coders/wpg.c
- image->colors が小さい場合はカラーマップのコピーのサイズをそっちに合わせる
1265,1266c1265,1266 < (void) memcpy(image->colormap,colormap,colors* < sizeof(*image->colormap)); --- > (void) memcpy(image->colormap,colormap,MagickMin( > image->colors,colors)*sizeof(*image->colormap));
ChangeLog
2019-02-28 7.0.8-29 Cristy <quetzlzacatenango@image...> * Release ImageMagick version 7.0.8-29, GIT revision 15368:5d8ed9f56:20190228 2019-02-28 7.0.8-29 Cristy <quetzlzacatenango@image...> * Fixed a number of issues (reference https://github.com/ImageMagick/ImageMagick/issues). * Fixed numerous use of uninitialized values, integer overflow, memory exceeded, and timeouts (credit to OSS Fuzz).
(ImageMagick-7.0.8-30 の ChangeLog で追記)