Commit ac3f08d7c for imagemagick.org
commit ac3f08d7cef143819a456203cf399c6eda190e46
Author: Cristy <urban-warrior@imagemagick.org>
Date: Wed Mar 4 17:54:23 2026 -0500
https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-5q69-ghxh-wxxx
diff --git a/MagickCore/visual-effects.c b/MagickCore/visual-effects.c
index 3a49fd8f5..d124ce7b8 100644
--- a/MagickCore/visual-effects.c
+++ b/MagickCore/visual-effects.c
@@ -3554,10 +3554,17 @@ MagickExport Image *WaveletDenoiseImage(const Image *image,
assert(exception->signature == MagickCoreSignature);
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+ number_pixels=(MagickSizeType) image->columns*image->rows;
+ while ((number_levels > 0) &&
+ (((size_t) 1 << (number_levels-1)) >= MagickMin(image->columns,image->rows)))
+ number_levels--;
#if defined(MAGICKCORE_OPENCL_SUPPORT)
- noise_image=AccelerateWaveletDenoiseImage(image,threshold,exception);
- if (noise_image != (Image *) NULL)
- return(noise_image);
+ if (number_levels >= 5)
+ {
+ noise_image=AccelerateWaveletDenoiseImage(image,threshold,exception);
+ if (noise_image != (Image *) NULL)
+ return(noise_image);
+ }
#endif
noise_image=CloneImage(image,0,0,MagickTrue,exception);
if (noise_image == (Image *) NULL)
@@ -3583,10 +3590,6 @@ MagickExport Image *WaveletDenoiseImage(const Image *image,
}
pixels=(float *) GetVirtualMemoryBlob(pixels_info);
status=MagickTrue;
- number_pixels=(MagickSizeType) image->columns*image->rows;
- while ((number_levels > 0) &&
- (((size_t) 1 << (number_levels-1)) >= MagickMin(image->columns,image->rows)))
- number_levels--;
image_view=AcquireAuthenticCacheView(image,exception);
noise_view=AcquireAuthenticCacheView(noise_image,exception);
for (channel=0; channel < (ssize_t) GetPixelChannels(image); channel++)
@@ -3595,8 +3598,8 @@ MagickExport Image *WaveletDenoiseImage(const Image *image,
i;
size_t
- high_pass = 0,
- low_pass = 0;
+ high_pass,
+ low_pass;
ssize_t
level,