]> granicus.if.org Git - imagemagick/commitdiff
Don't call SetImageInfo() is delegate fails
authorCristy <urban-warrior@imagemagick.org>
Sat, 14 May 2016 20:15:50 +0000 (16:15 -0400)
committerCristy <urban-warrior@imagemagick.org>
Sat, 14 May 2016 20:15:50 +0000 (16:15 -0400)
MagickCore/constitute.c
MagickCore/delegate.c
MagickCore/magick.c
config/delegates.xml.in

index 587cce80f7bf428f286878dc3a89c301619bb852..7723e1590850095de5f51a2ce1338e8b48699b58 100644 (file)
@@ -499,6 +499,9 @@ MagickExport Image *ReadImage(const ImageInfo *image_info,
     }
   else
     {
+      MagickBooleanType
+        status;
+
       delegate_info=GetDelegateInfo(read_info->magick,(char *) NULL,exception);
       if (delegate_info == (const DelegateInfo *) NULL)
         {
@@ -524,13 +527,14 @@ MagickExport Image *ReadImage(const ImageInfo *image_info,
       *read_info->filename='\0';
       if (GetDelegateThreadSupport(delegate_info) == MagickFalse)
         LockSemaphoreInfo(delegate_info->semaphore);
-      (void) InvokeDelegate(read_info,image,read_info->magick,(char *) NULL,
+      status=InvokeDelegate(read_info,image,read_info->magick,(char *) NULL,
         exception);
       if (GetDelegateThreadSupport(delegate_info) == MagickFalse)
         UnlockSemaphoreInfo(delegate_info->semaphore);
       image=DestroyImageList(image);
       read_info->temporary=MagickTrue;
-      (void) SetImageInfo(read_info,0,exception);
+      if (status != MagickFalse)
+        (void) SetImageInfo(read_info,0,exception);
       magick_info=GetMagickInfo(read_info->magick,exception);
       if ((magick_info == (const MagickInfo *) NULL) ||
           (GetImageDecoder(magick_info) == (DecodeImageHandler *) NULL))
index 68a8c350b038adfb865f0fb2405af6f5058dbfbf..65695912e43fd7837df34425696a7cdacbbb85f4 100644 (file)
@@ -1696,7 +1696,6 @@ MagickExport MagickBooleanType InvokeDelegate(ImageInfo *image_info,
   assert(image->signature == MagickCoreSignature);
   if (image->debug != MagickFalse)
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-
   rights=ExecutePolicyRights;
   if (IsRightsAuthorized(DelegatePolicyDomain,rights,decode) == MagickFalse)
     {
index cdd55d266bfced027ee975297f31dd180cbef373..c999e9d8320bbae8749a057cf57796f717529631 100644 (file)
@@ -1639,7 +1639,7 @@ MagickExport int SetMagickPrecision(const int precision)
       /*
         Precision reset, or it has not been set yet
       */
-      magick_precision = MagickPrecision;
+      magick_precision=MagickPrecision;
       limit=GetEnvironmentValue("MAGICK_PRECISION");
       if (limit == (char *) NULL)
         limit=GetPolicyValue("precision");
index 1eb9b9d720f80041323c36a5f29bf23a42ba56b0..913536143c490cd75d89b45239d9f914efbde186 100644 (file)
 
     decode="in_format" encode="out_format"
 
-  specify the rules for converting from in_format to out_format These
-  rules may be used to translate directly between formats.
+  specify the rules for converting from in_format to out_format.  Use these
+  rules to translate directly between formats.
 
   Commands which specify only
 
     decode="in_format"
 
   specify the rules for converting from in_format to some format that
-  ImageMagick will automatically recognize. These rules are used to
-  decode formats.
+  ImageMagick automatically recognizes. Use these rules to decode formats.
 
   Commands which specify only
 
@@ -34,8 +33,7 @@
 
   specify the rules for an "encoder" which may accept any input format.
 
-  For delegates other than ps:*, pcl:*, and mpeg:* the substitution rules are
-  as follows:
+  The substitution rules are as follows:
 
     %a  authentication passphrase
     %b  image file size in bytes
@@ -59,8 +57,8 @@
   If stealth="True" the delegate is not listed in user requested
   "-list delegate" listings. These are typically special internal delegates.
 
-  If spawn="True" ImageMagick will not wait for the delegate to finish, nor will
-  it read any output image.
+  If spawn="True", ImageMagick does not wait for the delegate to finish, nor
+  will it read any output image.
 -->
 <delegatemap>
   <delegate decode="bpg" command="&quot;@BPGDecodeDelegate@&quot; -b 16 -o &quot;%o.png&quot; &quot;%i&quot;; @MVDelegate@ &quot;%o.png&quot; &quot;%o&quot;"/>