File ImageMagick-CVE-2026-25576.patch of Package ImageMagick.42998
From 077b42643212d7da8c1a4f6b2cd0067ebca8ec0f Mon Sep 17 00:00:00 2001
From: Dirk Lemstra <dirk@lemstra.org>
Date: Sun, 25 Jan 2026 19:21:20 +0100
Subject: [PATCH] Fixed out of bounds read in multiple coders that read raw
pixel data (GHSA-jv4p-gjwq-9r2j)
---
coders/bgr.c | 22 ++++++++++++----------
coders/cmyk.c | 26 ++++++++++++++------------
coders/gray.c | 14 ++++++++------
coders/raw.c | 4 +++-
coders/rgb.c | 26 +++++++++++++++-----------
coders/ycbcr.c | 22 ++++++++++++----------
6 files changed, 64 insertions(+), 50 deletions(-)
Index: ImageMagick-7.1.0-9/coders/bgr.c
===================================================================
--- ImageMagick-7.1.0-9.orig/coders/bgr.c
+++ ImageMagick-7.1.0-9/coders/bgr.c
@@ -125,6 +125,7 @@ static Image *ReadBGRImage(const ImageIn
length;
ssize_t
+ columns,
count,
y;
@@ -205,6 +206,7 @@ static Image *ReadBGRImage(const ImageIn
scene=0;
status=MagickTrue;
stream=NULL;
+ columns=(ssize_t) MagickMin(image->columns,canvas_image->columns);
do
{
/*
@@ -265,7 +267,7 @@ static Image *ReadBGRImage(const ImageIn
if ((p == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelRed(image,GetPixelRed(canvas_image,p),q);
SetPixelGreen(image,GetPixelGreen(canvas_image,p),q);
@@ -348,7 +350,7 @@ static Image *ReadBGRImage(const ImageIn
if ((p == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
switch (quantum_type)
{
@@ -444,7 +446,7 @@ static Image *ReadBGRImage(const ImageIn
if ((p == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelRed(image,GetPixelRed(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -497,7 +499,7 @@ static Image *ReadBGRImage(const ImageIn
if ((p == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelGreen(image,GetPixelGreen(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -550,7 +552,7 @@ static Image *ReadBGRImage(const ImageIn
if ((p == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelBlue(image,GetPixelBlue(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -612,7 +614,7 @@ static Image *ReadBGRImage(const ImageIn
if ((p == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelAlpha(image,GetPixelAlpha(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -703,7 +705,7 @@ static Image *ReadBGRImage(const ImageIn
if ((p == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelRed(image,GetPixelRed(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -774,7 +776,7 @@ static Image *ReadBGRImage(const ImageIn
if ((p == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelGreen(image,GetPixelGreen(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -845,7 +847,7 @@ static Image *ReadBGRImage(const ImageIn
if ((p == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelBlue(image,GetPixelBlue(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -918,7 +920,7 @@ static Image *ReadBGRImage(const ImageIn
if ((p == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelAlpha(image,GetPixelAlpha(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
Index: ImageMagick-7.1.0-9/coders/cmyk.c
===================================================================
--- ImageMagick-7.1.0-9.orig/coders/cmyk.c
+++ ImageMagick-7.1.0-9/coders/cmyk.c
@@ -125,6 +125,7 @@ static Image *ReadCMYKImage(const ImageI
length;
ssize_t
+ columns,
count,
y;
@@ -202,6 +203,7 @@ static Image *ReadCMYKImage(const ImageI
scene=0;
status=MagickTrue;
stream=NULL;
+ columns=(ssize_t) MagickMin(image->columns,canvas_image->columns);
do
{
/*
@@ -263,7 +265,7 @@ static Image *ReadCMYKImage(const ImageI
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelRed(image,GetPixelRed(canvas_image,p),q);
SetPixelGreen(image,GetPixelGreen(canvas_image,p),q);
@@ -347,7 +349,7 @@ static Image *ReadCMYKImage(const ImageI
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
switch (quantum_type)
{
@@ -442,7 +444,7 @@ static Image *ReadCMYKImage(const ImageI
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelRed(image,GetPixelRed(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -494,7 +496,7 @@ static Image *ReadCMYKImage(const ImageI
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelGreen(image,GetPixelGreen(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -546,7 +548,7 @@ static Image *ReadCMYKImage(const ImageI
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelBlue(image,GetPixelBlue(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -598,7 +600,7 @@ static Image *ReadCMYKImage(const ImageI
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelBlack(image,GetPixelBlack(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -653,7 +655,7 @@ static Image *ReadCMYKImage(const ImageI
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelAlpha(image,GetPixelAlpha(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -743,7 +745,7 @@ static Image *ReadCMYKImage(const ImageI
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelRed(image,GetPixelRed(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -813,7 +815,7 @@ static Image *ReadCMYKImage(const ImageI
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelGreen(image,GetPixelGreen(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -884,7 +886,7 @@ static Image *ReadCMYKImage(const ImageI
if ((p == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelBlue(image,GetPixelBlue(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -955,7 +957,7 @@ static Image *ReadCMYKImage(const ImageI
if ((p == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelBlack(image,GetPixelBlack(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -1028,7 +1030,7 @@ static Image *ReadCMYKImage(const ImageI
if ((p == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelAlpha(image,GetPixelAlpha(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
Index: ImageMagick-7.1.0-9/coders/gray.c
===================================================================
--- ImageMagick-7.1.0-9.orig/coders/gray.c
+++ ImageMagick-7.1.0-9/coders/gray.c
@@ -126,6 +126,7 @@ static Image *ReadGRAYImage(const ImageI
length;
ssize_t
+ columns,
count,
y;
@@ -201,6 +202,7 @@ static Image *ReadGRAYImage(const ImageI
scene=0;
status=MagickTrue;
stream=NULL;
+ columns=(ssize_t) MagickMin(image->columns,canvas_image->columns);
do
{
/*
@@ -260,7 +262,7 @@ static Image *ReadGRAYImage(const ImageI
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelRed(image,GetPixelRed(canvas_image,p),q);
SetPixelGreen(image,GetPixelGreen(canvas_image,p),q);
@@ -340,7 +342,7 @@ static Image *ReadGRAYImage(const ImageI
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
switch (quantum_type)
{
@@ -420,7 +422,7 @@ static Image *ReadGRAYImage(const ImageI
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelGray(image,GetPixelGray(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -475,7 +477,7 @@ static Image *ReadGRAYImage(const ImageI
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelAlpha(image,GetPixelAlpha(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -565,7 +567,7 @@ static Image *ReadGRAYImage(const ImageI
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelRed(image,GetPixelRed(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -638,7 +640,7 @@ static Image *ReadGRAYImage(const ImageI
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelAlpha(image,GetPixelAlpha(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
Index: ImageMagick-7.1.0-9/coders/raw.c
===================================================================
--- ImageMagick-7.1.0-9.orig/coders/raw.c
+++ ImageMagick-7.1.0-9/coders/raw.c
@@ -119,6 +119,7 @@ static Image *ReadRAWImage(const ImageIn
length;
ssize_t
+ columns,
count,
y;
@@ -187,6 +188,7 @@ static Image *ReadRAWImage(const ImageIn
length=0;
status=MagickTrue;
stream=NULL;
+ columns=(ssize_t) MagickMin(image->columns,canvas_image->columns);
do
{
/*
@@ -239,7 +241,7 @@ static Image *ReadRAWImage(const ImageIn
1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelRed(image,GetPixelRed(canvas_image,p),q);
SetPixelGreen(image,GetPixelGreen(canvas_image,p),q);
Index: ImageMagick-7.1.0-9/coders/rgb.c
===================================================================
--- ImageMagick-7.1.0-9.orig/coders/rgb.c
+++ ImageMagick-7.1.0-9/coders/rgb.c
@@ -126,6 +126,7 @@ static Image *ReadRGBImage(const ImageIn
ssize_t
count,
+ columns,
y;
unsigned char
@@ -205,6 +206,7 @@ static Image *ReadRGBImage(const ImageIn
scene=0;
status=MagickTrue;
stream=NULL;
+ columns=(ssize_t) MagickMin(image->columns,canvas_image->columns);
do
{
/*
@@ -264,7 +266,7 @@ static Image *ReadRGBImage(const ImageIn
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelRed(image,GetPixelRed(canvas_image,p),q);
SetPixelGreen(image,GetPixelGreen(canvas_image,p),q);
@@ -348,7 +350,7 @@ static Image *ReadRGBImage(const ImageIn
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
switch (quantum_type)
{
@@ -443,7 +445,7 @@ static Image *ReadRGBImage(const ImageIn
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelRed(image,GetPixelRed(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -495,7 +497,7 @@ static Image *ReadRGBImage(const ImageIn
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelGreen(image,GetPixelGreen(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -547,7 +549,7 @@ static Image *ReadRGBImage(const ImageIn
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelBlue(image,GetPixelBlue(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -602,7 +604,7 @@ static Image *ReadRGBImage(const ImageIn
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelAlpha(image,GetPixelAlpha(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -692,7 +694,7 @@ static Image *ReadRGBImage(const ImageIn
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelRed(image,GetPixelRed(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -762,7 +764,7 @@ static Image *ReadRGBImage(const ImageIn
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelGreen(image,GetPixelGreen(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -832,7 +834,7 @@ static Image *ReadRGBImage(const ImageIn
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelBlue(image,GetPixelBlue(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -904,7 +906,7 @@ static Image *ReadRGBImage(const ImageIn
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelAlpha(image,GetPixelAlpha(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -1021,6 +1023,7 @@ static Image *ReadRGB565Image(const Imag
length;
ssize_t
+ columns,
count,
y;
@@ -1090,6 +1093,7 @@ static Image *ReadRGB565Image(const Imag
scene=0;
status=MagickTrue;
stream=NULL;
+ columns=(ssize_t) MagickMin(image->columns,canvas_image->columns);
do
{
/*
@@ -1143,7 +1147,7 @@ static Image *ReadRGB565Image(const Imag
image->columns,1,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
unsigned short
pixel;
Index: ImageMagick-7.1.0-9/coders/ycbcr.c
===================================================================
--- ImageMagick-7.1.0-9.orig/coders/ycbcr.c
+++ ImageMagick-7.1.0-9/coders/ycbcr.c
@@ -125,6 +125,7 @@ static Image *ReadYCBCRImage(const Image
length;
ssize_t
+ columns,
count,
y;
@@ -202,6 +203,7 @@ static Image *ReadYCBCRImage(const Image
scene=0;
status=MagickTrue;
stream=NULL;
+ columns=(ssize_t) MagickMin(image->columns,canvas_image->columns);
do
{
/*
@@ -264,7 +266,7 @@ static Image *ReadYCBCRImage(const Image
if ((p == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelRed(image,GetPixelRed(canvas_image,p),q);
SetPixelGreen(image,GetPixelGreen(canvas_image,p),q);
@@ -346,7 +348,7 @@ static Image *ReadYCBCRImage(const Image
if ((p == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
switch (quantum_type)
{
@@ -437,7 +439,7 @@ static Image *ReadYCBCRImage(const Image
if ((p == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelRed(image,GetPixelRed(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -490,7 +492,7 @@ static Image *ReadYCBCRImage(const Image
if ((p == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelGreen(image,GetPixelGreen(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -543,7 +545,7 @@ static Image *ReadYCBCRImage(const Image
if ((p == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelBlue(image,GetPixelBlue(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -599,7 +601,7 @@ static Image *ReadYCBCRImage(const Image
if ((p == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelAlpha(image,GetPixelAlpha(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -690,7 +692,7 @@ static Image *ReadYCBCRImage(const Image
if ((p == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelRed(image,GetPixelRed(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -761,7 +763,7 @@ static Image *ReadYCBCRImage(const Image
if ((p == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelGreen(image,GetPixelGreen(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -832,7 +834,7 @@ static Image *ReadYCBCRImage(const Image
if ((p == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelBlue(image,GetPixelBlue(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);
@@ -906,7 +908,7 @@ static Image *ReadYCBCRImage(const Image
if ((p == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < columns; x++)
{
SetPixelAlpha(image,GetPixelAlpha(canvas_image,p),q);
p+=GetPixelChannels(canvas_image);