ImageMagick-6.9.10-15差分
ImageMagick-6.9.10-14差分 - yoyaのメモの続き
The latest release of ImageMagick is version 6.9.10-15
- 7 系同時リリースは ImageMagick-7.0.8-15
まとめ
- ChangeLog は空っぽ。
- DefaultSVGDensity を 90 から 96 に変更。
気になる事
- GIF の長さチェックおかしかったの今まで大丈夫?
- DICOM で Explicit VR のケアが増えた場所が LittleEndian 前提。BigEndian 無しでいいの?
- magick_attribute で可変引数等で期待しない引数を渡された時の警告が入ってる。
差分
ChangeLog にない差分
- coders/bmp.c
- 長さチェックの間違いで7倍はみ出てそう
coders/bmp.c 968,969d967 < if (((MagickSizeType) length/8) > GetBlobSize(image)) < ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile"); 972a971,972 > if ((MagickSizeType) length > GetBlobSize(image)) > ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");
coders/dcm.c
-
- Explicit VR (Transfer Syntax の一種) としての処理に OF, UT を追加。
3205,3208c3205,3210 < if ((strncmp(explicit_vr,"OB",2) == 0) || < (strncmp(explicit_vr,"UN",2) == 0) || < (strncmp(explicit_vr,"OW",2) == 0) || < (strncmp(explicit_vr,"SQ",2) == 0)) --- > if ((strcmp(explicit_vr,"OB") == 0) || > (strcmp(explicit_vr,"OW") == 0) || > (strcmp(explicit_vr,"OF") == 0) || > (strcmp(explicit_vr,"SQ") == 0) || > (strcmp(explicit_vr,"UN") == 0) || > (strcmp(explicit_vr,"UT") == 0))
- coders/dib.c
- 長さチェック
672a673,674 > if ((MagickSizeType) length > (256*GetBlobSize(image))) > ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");
- coders/fits.c
- depth の計算ミス修正
730c730 < image->depth > 8 ? GetFITSPixelRange(image->depth)/2.0 : 0.0); --- > image->depth > 8 ? (GetFITSPixelRange(image->depth)+1)/2.0 : 0.0);
- coders/gif.c
1106c1106,1107 < length; --- > extent, > offset; 1108,1110d1108 < /* < Read comment extension. < */ 1112c1110,1111 < for (length=0; ; length+=count) --- > extent=MagickPathExtent; > for (offset=0; ; offset+=count) 1118c1117,1127 < (void) ConcatenateString(&comments,(const char *) buffer); --- > if ((count+offset+MagickPathExtent) >= (ssize_t) extent) > { > extent<<=1; > comments=(char *) ResizeQuantumMemory(comments,extent+ > MagickPathExtent,sizeof(*comments)); > if (comments == (char *) NULL) > ThrowGIFException(ResourceLimitError, > "MemoryAllocationFailed"); > } > (void) CopyMagickString(&comments[offset],(char *) buffer,extent- > offset); 1739,1740c1748 < if ((LocaleCompare(write_info->magick,"GIF87") != 0) && < (value != (const char *) NULL)) --- > if (value != (const char *) NULL)
- coders/heic.c
218c218 < void --- > unsigned char 229,230c229,230 < exif_buffer=AcquireMagickMemory(exif_size); < if (exif_buffer != NULL) --- > exif_buffer=(unsigned char*) AcquireMagickMemory(exif_size); > if (exif_buffer != (unsigned char*) NULL) 239c239,243 < profile=BlobToStringInfo(exif_buffer,exif_size); --- > // The first 4 byte should be skipped since they indicate the > // offset to the start of the TIFF header of the Exif data. > profile=(StringInfo*) NULL; > if (exif_size > 8) > profile=BlobToStringInfo(exif_buffer+4,exif_size-4);
- diff -rbw ImageMagick-6.9.10-14/coders/icon.c ImageMagick-6.9.10-15/coders/icon.c
- 最後の16バイト
375,376c375,376 < count=ReadBlob(image,length,png+16); < if (count != (ssize_t) length) --- > count=ReadBlob(image,length-16,png+16); > if (count != (ssize_t) (length-16))
- coders/jpeg.c
- option 変数の再利用を辞めて、場所毎に変数名を分けた。
- dct-method 未指定で quality が 90 以下の場合 JDCT_IFAST を使う。
1034a1035 > *dct_method, 1238,1241c1239,1241 < jpeg_info.dct_method=JDCT_FLOAT; < option=GetImageOption(image_info,"jpeg:dct-method"); < if (option != (const char *) NULL) < switch (*option) --- > dct_method=GetImageOption(image_info,"jpeg:dct-method"); > if (dct_method != (const char *) NULL) > switch (*dct_method) 1246c1246 < if (LocaleCompare(option,"default") == 0) --- > if (LocaleCompare(dct_method,"default") == 0) <略> > if ((dct_method == (const char *) NULL) && (quality <= 90)) > jpeg_info.dct_method=JDCT_IFAST;
- coders/miff.c
- 型指定の修正
183a184,186 > magick_attribute((__malloc__)); > > static void *AcquireBZIPMemory(void *context,int items,int size) 190a194,196 > magick_attribute((__malloc__)); > > static void *AcquireLZMAMemory(void *context,size_t items,size_t size) 197a204,206 > unsigned int size) magick_attribute((__malloc__)); > > static voidpf AcquireZIPMemory(voidpf context,unsigned int items,
- coders/msl.c
- MSDWarning と MSLError の attribute 指定(print書式を間違えると警告がでるのと同じ?)
7568a7569,7571 > magick_attribute((__format__ (__printf__,2,3))); > > static void MSLWarning(void *context,const char *format,...) 7600a7604,7606 > magick_attribute((__format__ (__printf__,2,3))); > > static void MSLError(void *context,const char *format,...) |<< ** ChangeLog >|| 2018-12-01 6.9.10-15 Cristy <quetzlzacatenango@image...> * Release ImageMagick version 6.9.10-15, GIT revision 14011:ddd5bd95d:20181201