Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
README.md | 2023-08-23 | 4.2 kB | |
libjpeg-turbo-official32_2.1.5.1_amd64.deb | 2023-02-08 | 817.5 kB | |
libjpeg-turbo-official-2.1.5.1.x86_64.rpm | 2023-02-08 | 959.6 kB | |
libjpeg-turbo-official_2.1.5.1_amd64.deb | 2023-02-08 | 1.2 MB | |
libjpeg-turbo-official_2.1.5.1_arm64.deb | 2023-02-08 | 1.2 MB | |
libjpeg-turbo-official_2.1.5.1_i386.deb | 2023-02-08 | 1.1 MB | |
libjpeg-turbo-ios-2.1.5.1.dmg | 2023-02-08 | 5.8 MB | |
libjpeg-turbo-official-2.1.5.1.aarch64.rpm | 2023-02-08 | 836.4 kB | |
libjpeg-turbo-official-2.1.5.1.i386.rpm | 2023-02-08 | 931.3 kB | |
libjpeg-turbo-official-2.1.5.1.src.rpm | 2023-02-08 | 2.3 MB | |
libjpeg-turbo-2.1.5.1-vc64.exe | 2023-02-08 | 1.5 MB | |
libjpeg-turbo-2.1.5.1-vc.exe | 2023-02-08 | 1.3 MB | |
libjpeg-turbo-2.1.5.1.dmg | 2023-02-08 | 3.0 MB | |
libjpeg-turbo-2.1.5.1.tar.gz | 2023-02-08 | 2.3 MB | |
libjpeg-turbo-2.1.5.1.tar.gz.sig | 2023-02-08 | 543 Bytes | |
libjpeg-turbo-2.1.5.1-gcc64.exe | 2023-02-08 | 1.5 MB | |
libjpeg-turbo-2.1.5.1-gcc.exe | 2023-02-08 | 1.4 MB | |
Totals: 17 Items | 26.2 MB | 5,298 |
Package signatures
To ensure the integrity of the libjpeg-turbo binary packages, the RPM and DEB
files and the source tarball are signed using the following key:
https://www.libjpeg-turbo.org/key/LJT-GPG-KEY
https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x0338c8d8d9fda62cf9c421bd7ec2dbb6f4dbf434
and the Windows installers are signed using a code signing certificate.
2.1.5.1
Significant changes relative to 2.1.5:
- The SIMD dispatchers in libjpeg-turbo 2.1.4 and prior stored the list of
supported SIMD instruction sets in a global variable, which caused an innocuous
race condition whereby the variable could have been initialized multiple times
if
jpeg_start_*compress()
was called simultaneously in multiple threads. libjpeg-turbo 2.1.5 included an undocumented attempt to fix this race condition by making the SIMD support variable thread-local. However, that caused another issue whereby, ifjpeg_start_*compress()
was called in one thread andjpeg_read_*()
orjpeg_write_*()
was called in a second thread, the SIMD support variable was never initialized in the second thread. On x86 systems, this led the second thread to incorrectly assume that AVX2 instructions were always available, and when it attempted to use those instructions on older x86 CPUs that do not support them, an illegal instruction error occurred. The SIMD dispatchers now ensure that the SIMD support variable is initialized before dispatching based on its value.
2.1.5
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.