From 55abbb4022327c54beb0a774deb79647fde78a85 Mon Sep 17 00:00:00 2001 From: Cristy Date: Mon, 9 Sep 2019 20:05:44 -0400 Subject: [PATCH] Eliminate fault when trace delegate is not available --- ChangeLog | 6 ++++++ coders/svg.c | 27 ++++++++++++++++++--------- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9816fe655..2afab3082 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2019-09-09 7.0.8-65 Cristy + * Release ImageMagick version 7.0.8-65, GIT revision 16... + +2019-09-09 7.0.8-65 Cristy + * Eliminate fault when trace delegate is not available. + 2019-09-07 7.0.8-64 Cristy * Release ImageMagick version 7.0.8-64, GIT revision 16108:2ad3cbc:20190907. diff --git a/coders/svg.c b/coders/svg.c index 39f5a1d5c..5faaab034 100644 --- a/coders/svg.c +++ b/coders/svg.c @@ -3982,6 +3982,9 @@ static MagickBooleanType TraceSVGImage(Image *image,ExceptionInfo *exception) filename[MagickPathExtent], message[MagickPathExtent]; + const DelegateInfo + *delegate_info; + Image *clone_image; @@ -4004,15 +4007,21 @@ static MagickBooleanType TraceSVGImage(Image *image,ExceptionInfo *exception) unsigned char *blob; - image_info=AcquireImageInfo(); - (void) CopyMagickString(image_info->magick,"TRACE",MagickPathExtent); - (void) FormatLocaleString(filename,MagickPathExtent,"trace:%s", - image_info->filename); - (void) CopyMagickString(image_info->filename,filename,MagickPathExtent); - status=WriteImage(image_info,image,exception); - image_info=DestroyImageInfo(image_info); - if (status != MagickFalse) - return(status); + delegate_info=GetDelegateInfo((char *) NULL,"TRACE",exception); + if (delegate_info != (DelegateInfo *) NULL) + { + /* + Trace SVG with tracing delegate. + */ + image_info=AcquireImageInfo(); + (void) CopyMagickString(image_info->magick,"TRACE",MagickPathExtent); + (void) FormatLocaleString(filename,MagickPathExtent,"trace:%s", + image_info->filename); + (void) CopyMagickString(image_info->filename,filename,MagickPathExtent); + status=WriteImage(image_info,image,exception); + image_info=DestroyImageInfo(image_info); + return(status); + } (void) WriteBlobString(image, "\n"); (void) WriteBlobString(image, -- 2.40.0