contrib/graphicsmagick/jpegturbo3-api-fixes.patch

68 lines
2.7 KiB
Diff

--- GraphicsMagick-1.3.40/coders/jpeg.c 2022-12-26 11:56:04.000000000 -0500
+++ GraphicsMagick-1.4.020230708/coders/jpeg.c 2023-05-31 08:38:54.000000000 -0400
@@ -1,5 +1,5 @@
/*
-% Copyright (C) 2003-2022 GraphicsMagick Group
+% Copyright (C) 2003-2023 GraphicsMagick Group
% Copyright (C) 2002 ImageMagick Studio
% Copyright 1991-1999 E. I. du Pont de Nemours and Company
%
@@ -954,7 +954,7 @@
i;
save_quality=0;
-#ifdef D_LOSSLESS_SUPPORTED
+#if !defined(LIBJPEG_TURBO_VERSION_NUMBER) && defined(D_LOSSLESS_SUPPORTED)
if (image->compression==LosslessJPEGCompression)
{
save_quality=100;
@@ -1461,7 +1461,9 @@
}
#endif
#if (JPEG_LIB_VERSION >= 61) && defined(D_PROGRESSIVE_SUPPORTED)
-#ifdef D_LOSSLESS_SUPPORTED
+#if !defined(LIBJPEG_TURBO_VERSION_NUMBER) && defined(D_LOSSLESS_SUPPORTED)
+ /* This code is based on a patch to IJG JPEG 6b, or somesuch. Standard
+ library does not have a 'process' member. */
image->interlace=
jpeg_info.process == JPROC_PROGRESSIVE ? LineInterlace : NoInterlace;
image->compression=jpeg_info.process == JPROC_LOSSLESS ?
@@ -1693,7 +1695,7 @@
}
}
- jpeg_pixels=MagickAllocateResourceLimitedArray(JSAMPLE *,
+ jpeg_pixels=MagickAllocateResourceLimitedClearedArray(JSAMPLE *,
jpeg_info.output_components,
MagickArraySize(image->columns,
sizeof(JSAMPLE)));
@@ -1702,9 +1704,6 @@
jpeg_destroy_decompress(&jpeg_info);
ThrowJPEGReaderException(ResourceLimitError,MemoryAllocationFailed,image);
}
- (void) memset(jpeg_pixels,0,MagickArraySize(jpeg_info.output_components,
- MagickArraySize(image->columns,
- sizeof(JSAMPLE))));
/*
Extended longjmp-based error handler (with jpeg_pixels)
@@ -2791,7 +2790,8 @@
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
"Image resolution: %ld,%ld",(long) image->x_resolution,
(long) image->y_resolution);
- if ((image->x_resolution != 0) && (image->y_resolution != 0))
+ if ((image->x_resolution >= 0) && (image->x_resolution < (double) SHRT_MAX) &&
+ (image->y_resolution >= 0) && (image->y_resolution < (double) SHRT_MAX))
{
/*
Set image resolution.
@@ -2896,7 +2896,7 @@
if ((image->compression == LosslessJPEGCompression) ||
(quality > 100))
{
-#if defined(C_LOSSLESS_SUPPORTED)
+#if !defined(LIBJPEG_TURBO_VERSION_NUMBER) && defined(C_LOSSLESS_SUPPORTED)
if (quality < 100)
ThrowException(&image->exception,CoderWarning,
LosslessToLossyJPEGConversion,(char *) NULL);