ImageMagick-6.9.8-1差分
ImageMagick-6.9.8-0差分 - yoyaのメモの続き
The latest release of ImageMagick is version 6.9.8-1
- 7 系同時リリースは ImageMagick-7.0.5-2
まとめ
- security policy の namespace をサポート
コードを見る限り、domain="foo" name="baa" を name="foo:baa" とかけるようだけど。ちょっと意味がわからない。
差分
- security policy の namespace をサポート
- magick/policy.c
262c262,265 < policyname[MaxTextExtent]; --- > policyname[MagickPathExtent]; > > PolicyDomain > domain; 278c281 < (void) CopyMagickString(policyname,name,MaxTextExtent); --- > (void) CopyMagickString(policyname,name,MagickPathExtent); 283c286 < (void) CopyMagickString(q,q+1,MaxTextExtent); --- > (void) CopyMagickString(q,q+1,MagickPathExtent); 286a290,303 > Strip domain from policy name (e.g. resource:map). > */ > domain=UndefinedPolicyDomain; > for (q=policyname; *q != '\0'; q++) > { > if (*q != ':') > continue; > *q='\0'; > domain=(PolicyDomain) ParseCommandOption(MagickPolicyDomainOptions, > MagickTrue,policyname); > (void) CopyMagickString(policyname,q+1,MagickPathExtent); > break; > } > /* 298a316 > if ((domain == UndefinedPolicyDomain) || (p->domain == domain)) 599c617,618 < authorized=(p->rights & ReadPolicyRights) != 0; --- > authorized=(p->rights & ReadPolicyRights) != 0 ? MagickTrue : > MagickFalse; 601c620,621 < authorized=(p->rights & WritePolicyRights) != 0; --- > authorized=(p->rights & WritePolicyRights) != 0 ? MagickTrue : > MagickFalse; 603c623,624 < authorized=(p->rights & ExecutePolicyRights) != 0; --- > authorized=(p->rights & ExecutePolicyRights) != 0 ? MagickTrue : > MagickFalse;
-
- magick/distribute-cache.c
206c206 < shared_secret=GetPolicyValue("shared-secret"); --- > shared_secret=GetPolicyValue("cache:shared-secret"); 801c801 < shared_secret=GetPolicyValue("shared-secret"); --- > shared_secret=GetPolicyValue("cache:shared-secret");
-
- magick/magick.c
1549c1549 < limit=GetPolicyValue("precision"); --- > limit=GetPolicyValue("system:precision");
-
- magick/resource.c
438c438 < value=GetPolicyValue("temporary-path"); --- > value=GetPolicyValue("resource:temporary-path"); 1296c1296 < value=GetPolicyValue("width"); --- > value=GetPolicyValue("resource:width"); 1305c1305 < value=GetPolicyValue("height"); --- > value=GetPolicyValue("resource:height"); 1314c1314 < value=GetPolicyValue("area"); --- > value=GetPolicyValue("resource:area"); 1322c1322 < value=GetPolicyValue("memory"); --- > value=GetPolicyValue("resource:memory"); 1331c1331 < value=GetPolicyValue("map"); --- > value=GetPolicyValue("resource:map"); 1339c1339 < value=GetPolicyValue("disk"); --- > value=GetPolicyValue("resource:disk"); 1347c1347 < value=GetPolicyValue("file"); --- > value=GetPolicyValue("resource:file"); 1355c1355 < value=GetPolicyValue("thread"); --- > value=GetPolicyValue("resource:thread"); 1369c1369 < value=GetPolicyValue("throttle"); --- > value=GetPolicyValue("resource:throttle"); 1378c1378 < value=GetPolicyValue("time"); --- > value=GetPolicyValue("resource:time"); 1380c1380 < resource_info.time_limit=MagickMax(limit,StringToSizeType(value,100.0)); --- > resource_info.time_limit=MagickMin(limit,StringToSizeType(value,100.0));
-
- magick/utility.c
1810c1810 < passes=GetPolicyValue("shred"); --- > passes=GetPolicyValue("system:shred");
ChangeLogにない差分
- PerlMagick/quantum/quantum.xs
- info->image_info->filename 参照前に NULL チェック
- attribute channel がないと alpha なしで処理してたので、修正
4868,4870d4867 < if (info && info->image_info->filename && < *info->image_info->filename) < s=newSVpv(info->image_info->filename,0); 4872a4870,4872 > else > if (info && *info->image_info->filename) > s=newSVpv(info->image_info->filename,0); PerlMagick/quantum/quantum.xs.in 4868,4870d4867 < if (info && info->image_info->filename && < *info->image_info->filename) < s=newSVpv(info->image_info->filename,0); 4872a4870,4872 > else > if (info && *info->image_info->filename) > s=newSVpv(info->image_info->filename,0); 13701a13702,13703 > if (image->matte != MagickFalse) > channel|=OpacityChannel;
- coders/jp2.c
- ssize_t を size_t に。
820,821c820,821 < if (((ssize_t) (1 << (i+2)) > image->columns) && < ((ssize_t) (1 << (i+2)) > image->rows)) --- > if (((size_t) (1 << (i+2)) > image->columns) && > ((size_t) (1 << (i+2)) > image->rows))
- coders/pgx.c
- 書き込みに失敗した時点で中断させる
380c380 count=WriteBlob(image,length,pixels); if (count != (ssize_t) length) < ThrowWriterException(CorruptImageError,"UnableToWriteImageData"); --- > break;
- coders/png.c
- 数値の型合わせ
1864c1864 < for (i=0; i<chunk->size; i++) --- > for (i=0; i < (ssize_t) chunk->size; i++)
- tiff.c
- size_t キャスト
1617c1617 < TIFFScanlineSize(tiff),(size_t) (image->columns*samples_per_pixel* --- > TIFFScanlineSize(tiff),(image->columns*samples_per_pixel* ||M< - magick/cache.c -- MAGICK_SYNCHRONIZE を cache_info-syncronize に収納した >|c| 338c338 < *synchronize; --- > *value; 360,361c360,367 < synchronize=GetEnvironmentValue("MAGICK_SYNCHRONIZE"); < if (synchronize != (const char *) NULL) --- > value=GetEnvironmentValue("MAGICK_SYNCHRONIZE"); > if (value != (const char *) NULL) > { > cache_info->synchronize=IsStringTrue(value); > value=DestroyString(value); > } > value=GetPolicyValue("cache:synchronize"); > if (value != (const char *) NULL) 363,364c369,370 < cache_info->synchronize=IsStringTrue(synchronize); < synchronize=DestroyString(synchronize); --- > cache_info->synchronize=IsStringTrue(value); > value=DestroyString(value); 3834a3841,3842 > if (value == (char *) NULL) > value=GetPolicyValue("cache:memory-map");
- magick/compare.c
< if (((channel & OpacityChannel) != 0) && ((image->matte != MagickFalse) || < (reconstruct_image->matte != MagickFalse))) < distortion[CompositeChannels]/=(double) < (GetNumberChannels(image,channel)-1); < else
- identify.c
- PrintChannelStatistics 第3引数で指定する文字列に "Overall" 追加。
- (AlphaChannel に巻き込ませてる。QuantumRange から引いて逆数をとってるけど何だろう?)
458c458 < if (channel == AlphaChannel) --- > if ((channel == AlphaChannel) || (LocaleCompare(name,"Overall") == 0))
- magick/property.c
- namespace を xmp_namespace に改名。(security policy namespace とごっちゃにならないよう?)
1743c1743 < *namespace; --- > *xmp_namespace; 1750,1751c1750,1751 < namespace=ConstantString(GetXMLTreeTag(node)); < (void) SubstituteString(&namespace,"exif:","xmp:"); --- > xmp_namespace=ConstantString(GetXMLTreeTag(node)); > (void) SubstituteString(&xmp_namespace,"exif:","xmp:"); 1753c1753 < namespace,ConstantString(content)); --- > xmp_namespace,ConstantString(content)); 1760,1761c1760,1761 < namespace=ConstantString(GetXMLTreeTag(node)); < (void) SubstituteString(&namespace,"exif:","xmp:"); --- > xmp_namespace=ConstantString(GetXMLTreeTag(node)); > (void) SubstituteString(&xmp_namespace,"exif:","xmp:"); 1763c1763 < namespace,ConstantString(content)); --- > xmp_namespace,ConstantString(content));
- magick/statistic.c
1537,1539c1536
< channel_statistics[RedChannel].variance-
< channel_statistics[RedChannel].mean*
< channel_statistics[RedChannel].mean;
---
> channel_statistics[RedChannel].standard_deviation;
ChangeLog
2017-03-14 6.9.8-1 Cristy <quetzlzacatenango@image...> * Support namespaces for the security policy.