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/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
(空っぽ)