...
diff --git a/coders/mvg.c b/coders/mvg.c
index 55afec6..53e8209 100644
--- a/coders/mvg.c
+++ b/coders/mvg.c
@@ -211,13 +211,20 @@
draw_info->primitive=FileToString(image->filename,~0UL,exception);
else
{
- draw_info->primitive=(char *) AcquireMagickMemory(GetBlobSize(image)+1);
- if (draw_info->primitive != (char *) NULL)
+ MagickSizeType
+ length;
+
+ length=GetBlobSize(image);
+ if (length == (MagickSizeType) ((size_t) length))
{
- memcpy(draw_info->primitive,GetBlobStreamData(image),
- GetBlobSize(image));
- draw_info->primitive[GetBlobSize(image)]='\0';
- }
+ draw_info->primitive=(char *) AcquireMagickMemory((size_t) length+1);
+ if (draw_info->primitive != (char *) NULL)
+ {
+ memcpy(draw_info->primitive,GetBlobStreamData(image),(size_t)
+ length);
+ draw_info->primitive[length]='\0';
+ }
+ }
}
if (draw_info->primitive == (char *) NULL)
{