2.1.5
Assets
- libjpeg-turbo-2.1.5.tar.gz is the official source tarball for this release. The automatically generated "Source code" assets are not supported.
- Refer to https://libjpeg-turbo.org/Downloads/DigitalSignatures for information regarding the methods used to sign the files in this release and instructions for verifying the signatures.
- Refer to https://libjpeg-turbo.org/Documentation/OfficialBinaries for information regarding the compatibility of the binary packages in this release.
Support
Code Quality: Stable
Current Support Category: Maintenance
Release Notes
Significant changes relative to 2.1.4:
-
Fixed issues in the build system whereby, when using the Ninja Multi-Config CMake generator, a static build of libjpeg-turbo (a build in which
ENABLE_SHARED
is0
) could not be installed, a Windows installer could not be built, and the Java regression tests failed. -
Fixed a regression introduced by 2.0 beta1[15] that caused a buffer overrun in the progressive Huffman encoder when attempting to transform a specially-crafted malformed 12-bit-per-component JPEG image into a progressive 12-bit-per-component JPEG image using a 12-bit-per-component build of libjpeg-turbo (
-DWITH_12BIT=1
.) Given that the buffer overrun was fully contained within the progressive Huffman encoder structure and did not cause a segfault or other user-visible errant behavior, given that the lossless transformer (unlike the decompressor) is not generally exposed to arbitrary data exploits, and given that 12-bit-per-component builds of libjpeg-turbo are uncommon, this issue did not likely pose a security risk. -
Fixed an issue whereby, when using a 12-bit-per-component build of libjpeg-turbo (
-DWITH_12BIT=1
), passing samples with values greater than 4095 or less than 0 tojpeg_write_scanlines()
caused a buffer overrun or underrun in the RGB-to-YCbCr color converter. -
Fixed a floating point exception that occurred when attempting to use the jpegtran
-drop
and-trim
options to losslessly transform a specially-crafted malformed JPEG image. -
Fixed an issue in
tjBufSizeYUV2()
whereby it returned a bogus result, rather than throwing an error, if thealign
parameter was not a power of 2. Fixed a similar issue intjCompressFromYUV()
whereby it generated a corrupt JPEG image in certain cases, rather than throwing an error, if thealign
parameter was not a power of 2. -
Fixed an issue whereby
tjDecompressToYUV2()
, which is a wrapper fortjDecompressToYUVPlanes()
, used the desired YUV image dimensions rather than the actual scaled image dimensions when computing the plane pointers and strides to pass totjDecompressToYUVPlanes()
. This caused a buffer overrun and subsequent segfault if the desired image dimensions exceeded the scaled image dimensions. -
Fixed an issue whereby, when decompressing a 12-bit-per-component JPEG image (
-DWITH_12BIT=1
) using an alpha-enabled output color space such asJCS_EXT_RGBA
, the alpha channel was set to 255 rather than 4095. -
Fixed an issue whereby the Java version of TJBench did not accept a range of quality values.
-
Fixed an issue whereby, when
-progressive
was passed to TJBench, the JPEG input image was not transformed into a progressive JPEG image prior to decompression.