Commit 7605c7619 for imagemagick.org
commit 7605c7619da77a5ff1ccf4ec159f3ec782c6bda7
Author: Cristy <urban-warrior@imagemagick.org>
Date: Sat Sep 19 20:18:27 2026 -0400
https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-jph3-37cg-79wg
diff --git a/MagickCore/profile.c b/MagickCore/profile.c
index 12f28dd6a..bf384281b 100644
--- a/MagickCore/profile.c
+++ b/MagickCore/profile.c
@@ -2651,7 +2651,7 @@ static void Sync8BimProfile(const Image *image,const StringInfo *profile)
return;
}
-static void ReplaceXmpValue(StringInfo *profile,size_t start,size_t end,
+static void ReplaceXMPValue(StringInfo *profile,size_t start,size_t end,
const char *value)
{
char
@@ -2670,15 +2670,15 @@ static void ReplaceXmpValue(StringInfo *profile,size_t start,size_t end,
datum=(char *) GetStringInfoDatum(profile);
(void) memmove(datum+start+value_length,datum+end,length-end);
(void) memcpy(datum+start,value,value_length);
+ *(datum+new_length)='\0';
if (new_length < length)
{
SetStringInfoLength(profile,new_length);
datum=(char *) GetStringInfoDatum(profile);
- *(datum+new_length)='\0';
}
}
-static MagickBooleanType GetXmpOffsets(const StringInfo *profile,
+static MagickBooleanType GetXMPOffsets(const StringInfo *profile,
const char *tag,size_t *start,size_t *end)
{
char
@@ -2722,7 +2722,7 @@ static MagickBooleanType TryAccumulate(const double term,
return(MagickTrue);
}
-static void GetXmpNumeratorAndDenominator(double value,
+static void GetXMPNumeratorAndDenominator(double value,
unsigned long *numerator,unsigned long *denominator)
{
double
@@ -2788,7 +2788,7 @@ static void GetXmpNumeratorAndDenominator(double value,
*denominator=(den == 0 ? 1 : den);
}
-static void SyncXmpProfile(const Image *image,StringInfo *profile)
+static void SyncXMPProfile(const Image *image,StringInfo *profile)
{
char
value[MagickPathExtent];
@@ -2802,37 +2802,37 @@ static void SyncXmpProfile(const Image *image,StringInfo *profile)
numerator;
*value='\0';
- if (GetXmpOffsets(profile,"tiff:XResolution",&start,&end) != MagickFalse)
+ if (GetXMPOffsets(profile,"tiff:XResolution",&start,&end) != MagickFalse)
{
- GetXmpNumeratorAndDenominator(image->resolution.x,&numerator,
+ GetXMPNumeratorAndDenominator(image->resolution.x,&numerator,
&denominator);
(void) FormatLocaleString(value,MagickPathExtent,"%lu/%lu",numerator,
denominator);
- ReplaceXmpValue(profile,start,end,value);
+ ReplaceXMPValue(profile,start,end,value);
}
- if (GetXmpOffsets(profile,"tiff:YResolution",&start,&end) != MagickFalse)
+ if (GetXMPOffsets(profile,"tiff:YResolution",&start,&end) != MagickFalse)
{
if ((fabs(image->resolution.x-image->resolution.y) > MagickEpsilon) ||
(*value == '\0'))
{
- GetXmpNumeratorAndDenominator(image->resolution.y,&numerator,
+ GetXMPNumeratorAndDenominator(image->resolution.y,&numerator,
&denominator);
(void) FormatLocaleString(value,MagickPathExtent,"%lu/%lu",
numerator,denominator);
}
- ReplaceXmpValue(profile,start,end,value);
+ ReplaceXMPValue(profile,start,end,value);
}
- if (GetXmpOffsets(profile,"tiff:ResolutionUnit",&start,&end) != MagickFalse)
+ if (GetXMPOffsets(profile,"tiff:ResolutionUnit",&start,&end) != MagickFalse)
{
(void) FormatLocaleString(value,MagickPathExtent,"%d",
((int) image->units)+1);
- ReplaceXmpValue(profile,start,end,value);
+ ReplaceXMPValue(profile,start,end,value);
}
- if (GetXmpOffsets(profile,"tiff:Orientation",&start,&end) != MagickFalse)
+ if (GetXMPOffsets(profile,"tiff:Orientation",&start,&end) != MagickFalse)
{
(void) FormatLocaleString(value,MagickPathExtent,"%d",
(int) image->orientation);
- ReplaceXmpValue(profile,start,end,value);
+ ReplaceXMPValue(profile,start,end,value);
}
}
@@ -2850,7 +2850,7 @@ MagickPrivate void SyncImageProfiles(Image *image)
profile));
profile=(StringInfo *) GetImageProfile(image,"XMP");
if (profile != (StringInfo *) NULL)
- SyncXmpProfile(image,profile);
+ SyncXMPProfile(image,profile);
}
static void UpdateClipPath(unsigned char *blob,size_t length,