]> granicus.if.org Git - imagemagick/commitdiff
Added extra checks to make sure only the RGB channels are modified.
authordirk <dirk@git.imagemagick.org>
Sun, 27 Mar 2016 20:34:56 +0000 (22:34 +0200)
committerdirk <dirk@git.imagemagick.org>
Sun, 27 Mar 2016 20:34:56 +0000 (22:34 +0200)
MagickCore/fx.c

index c7635f57831a5dbeac4a8cff8862dd02b1d11be3..9bdb3af6d8c8370d554c8cd38cbc804df3bb5750 100644 (file)
@@ -5885,10 +5885,19 @@ MagickExport Image *WaveletDenoiseImage(const Image *image,
       level,
       y;
 
+    PixelChannel
+      pixel_channel;
+
+
     if (status == MagickFalse)
       continue;
     if (GetPixelChannelTraits(image,channel) == UndefinedPixelTrait)
       continue;
+    pixel_channel=GetPixelChannelChannel(image,channel);
+    if ((pixel_channel != RedPixelChannel) &&
+        (pixel_channel != GreenPixelChannel) &&
+        (pixel_channel != BluePixelChannel))
+      continue;
     /*
       Copy channel from image to wavelet pixel array.
     */
@@ -5909,8 +5918,7 @@ MagickExport Image *WaveletDenoiseImage(const Image *image,
         }
       for (x=0; x < (ssize_t) image->columns; x++)
       {
-        pixels[i]=(float) p[channel];
-        i++;
+        pixels[i++]=(float) p[channel];
         p+=GetPixelChannels(image);
       }
     }
@@ -6023,8 +6031,7 @@ MagickExport Image *WaveletDenoiseImage(const Image *image,
           status=MagickFalse;
           break;
         }
-      offset=GetPixelChannelOffset(noise_image,GetPixelChannelChannel(image,
-        channel));
+      offset=GetPixelChannelOffset(noise_image,pixel_channel);
       for (x=0; x < (ssize_t) image->columns; x++)
       {
         MagickRealType