Download Latest Version bbbbca902bc9a02b77bb7f9bb534aea203bf97a278c20527491114aeb76b95f0-primary.sqlite.bz2 (52.7 kB)
Email in envelope

Get an email when there's a new version of libjpeg-turbo

Home / 2.1.5.1
Name Modified Size InfoDownloads / 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:

  1. 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, if jpeg_start_*compress() was called in one thread and jpeg_read_*() or jpeg_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:

  1. 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 is 0) could not be installed, a Windows installer could not be built, and the Java regression tests failed.

  2. 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.

  3. 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 to jpeg_write_scanlines() caused a buffer overrun or underrun in the RGB-to-YCbCr color converter.

  4. 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.

  5. Fixed an issue in tjBufSizeYUV2() whereby it returned a bogus result, rather than throwing an error, if the align parameter was not a power of 2. Fixed a similar issue in tjCompressFromYUV() whereby it generated a corrupt JPEG image in certain cases, rather than throwing an error, if the align parameter was not a power of 2.

  6. Fixed an issue whereby tjDecompressToYUV2(), which is a wrapper for tjDecompressToYUVPlanes(), used the desired YUV image dimensions rather than the actual scaled image dimensions when computing the plane pointers and strides to pass to tjDecompressToYUVPlanes(). This caused a buffer overrun and subsequent segfault if the desired image dimensions exceeded the scaled image dimensions.

  7. Fixed an issue whereby, when decompressing a 12-bit-per-component JPEG image (-DWITH_12BIT=1) using an alpha-enabled output color space such as JCS_EXT_RGBA, the alpha channel was set to 255 rather than 4095.

  8. Fixed an issue whereby the Java version of TJBench did not accept a range of quality values.

  9. 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.

Source: README.md, updated 2023-08-23