| Message ID | 20261104135004.2059527-10-adolf.belka@ipfire.org |
|---|---|
| State | Staged |
| Commit | 24b00b8961806c2c7dad4420ef148944c01653dc |
| Headers |
Return-Path: <development+bounces-3109-patchwork=ipfire.org@lists.ipfire.org> Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail01.haj.ipfire.org", Issuer "YR1" (not verified)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4jKRf53Tkpz3wvf for <patchwork@web04.haj.ipfire.org>; Wed, 04 Nov 2026 13:50:21 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail02.haj.ipfire.org", Issuer "YE2" (not verified)) by mail01.ipfire.org (Postfix) with ESMTPS id 4jKRf163bjz8ZM for <patchwork@ipfire.org>; Wed, 04 Nov 2026 13:50:17 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [IPv6:::1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4jKRf033GSz36h2 for <patchwork@ipfire.org>; Wed, 04 Nov 2026 13:50:16 +0000 (UTC) X-Original-To: development@lists.ipfire.org Received: from mail01.ipfire.org (mail01.haj.ipfire.org [IPv6:2001:678:b28::25]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail01.haj.ipfire.org", Issuer "YR1" (not verified)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4jKRdv2wXyz363y for <development@lists.ipfire.org>; Wed, 04 Nov 2026 13:50:11 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail01.ipfire.org (Postfix) with ESMTPSA id 4jKRds2fccz70g; Wed, 04 Nov 2026 13:50:09 +0000 (UTC) DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003ed25519; t=1793800209; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=h0F07zuqvChC0dfE2+jW3wYw9yPPUzrkkTfa8JER6BE=; b=BKx7ilo/p8+XDwGJM70YJzzw6plFsnpU2+oXnhPMG91EgwgxbL5IOpAEKJ8rufI1x978Od w+jP0GM0VpU6YMDw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003rsa; t=1793800209; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=h0F07zuqvChC0dfE2+jW3wYw9yPPUzrkkTfa8JER6BE=; b=DxVHX4gCIY8932jrMvzwq5xp6UkYZAmqySKfkq3EqeO2sl3GvAgbEgPnTCOoYaL6pmPzwQ t+W0NGKHuI6zqah/gdR+NTJeY4bpDul1lNx8dzww+Pgk6QpTtRbNX6JyLEhYnLbrrqOux9 UiCVqkBbHT4tYAzxHU6687e+2ioyEU1OxXM47VVN8lzk94v4riVekVqQoc8ZREknkHVrHB CaWjYDB0lVt+Z+S0tHLZGZw2Rt++NABjSU2V/SbzRDa3rV4BAKxXAnl+W+IFa/5gC5QFn+ yLRSfXkiCTQrIzDaaQAmRGmtH8WPRRBSdSwAhEMsGiAoBN0iQLBwlfsiO2F3bQ== From: Adolf Belka <adolf.belka@ipfire.org> To: development@lists.ipfire.org Cc: Adolf Belka <adolf.belka@ipfire.org> Subject: [PATCH] libjpeg: Update to version 3.2.1 Date: Wed, 4 Nov 2026 14:50:02 +0100 Message-ID: <20261104135004.2059527-10-adolf.belka@ipfire.org> In-Reply-To: <20261104135004.2059527-1-adolf.belka@ipfire.org> References: <20261104135004.2059527-1-adolf.belka@ipfire.org> Precedence: list List-Id: <development.lists.ipfire.org> List-Subscribe: <https://lists.ipfire.org/>, <mailto:development+subscribe@lists.ipfire.org?subject=subscribe> List-Unsubscribe: <https://lists.ipfire.org/>, <mailto:development+unsubscribe@lists.ipfire.org?subject=unsubscribe> List-Post: <mailto:development@lists.ipfire.org> List-Help: <mailto:development+help@lists.ipfire.org?subject=help> Sender: <development@lists.ipfire.org> Mail-Followup-To: <development@lists.ipfire.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit |
| Series |
libjpeg: Update to version 3.2.1
|
|
Commit Message
Adolf Belka
4 Nov 2026, 1:50 p.m. UTC
- Update from version 3.2.0 to 3.2.1
- No change in rootfile
- 1 CVE fix
- Changelog
3.2.1
1. Fixed a regression introduced by 3.2 beta1[9] that broke Un*x builds in
which position-independent code (PIC) was not enabled for static libraries.
This issue could be worked around by explicitly setting the
`CMAKE_POSITION_INDEPENDENT_CODE` CMake variable or using a toolchain, such as
the ones provided by Ubuntu, that automatically enables PIC.
2. The RISC-V Vector (RVV) forward DCT modules now use strided segment load
intrinsics to simultaneously load sample rows from memory and transpose them
into columns, as well as multiply-accumulate intrinsics where appropriate.
When using the accurate integer DCT algorithm, RGB-to-baseline JPEG compression
is approximately 10-17% (avg. 13%) faster (relative to libjpeg-turbo 3.2.0)
with GCC 14 and 1-8% (avg. 4%) faster with Clang 20. (Tested on a 1.6 GHz Ky
X1 CPU. Actual mileage may vary.)
3. Symbols from the in-tree zlib and libspng implementations introduced by
3.2 beta1[9] are now hidden, which prevents the symbols from being exposed in
downstream shared libraries and applications that link with the static
TurboJPEG API library. Symbols from the in-tree zlib implementation are now
also renamed, which prevents downstream shared libraries and applications that
link with the static TurboJPEG API library from accidentally calling the
in-tree zlib implementation when they intend to call the system-supplied zlib
implementation.
4. Fixed an integer overflow and subsequent buffer overrun that occurred when
attempting to use `tj3LoadImage12()` or `tj3LoadImage16()` from a 32-bit build
of libjpeg-turbo to load a packed-pixel image with more than 2^31 components.
5. Fixed a division-by-zero error (CVE-2026-75466) that occurred when
attempting to load a non-grayscale indexed-color PNG image using
`tj3LoadImage*()` if the pixel format of the packed-pixel buffer was
unspecified (`TJPF_UNKNOWN`.)
6. Fixed an issue whereby `tj3DecompressToYUV*()` produced incorrect
chrominance values when decompressing a 4:2:0, 4:1:0, or 2:4 JPEG image with
the "fast" IDCT algorithm and a scaling factor of 1/2. (In other words,
`TJPARAM_FASTDCT` was not ignored as it should be when decompression scaling is
enabled.)
7. Fixed a buffer overrun and subsequent segfault that occurred on certain
platforms when attempting to partially decompress a specially-crafted 4:2:0
JPEG image using the merged (non-fancy) upsampling algorithm with the
libjpeg-turbo SIMD extensions disabled and a cropping region that would have
caused any of the component planes to be cropped to a width of 1 or 2 samples.
8. Hardened the libjpeg API against hypothetical applications that may
erroneously attempt to decompress a full-color 12-bit-per-sample JPEG image
with both one-pass color quantization and RGB565 color conversion enabled.
This could have caused a buffer overrun in one of the quantizer's color index
arrays. The buffer overrun did not likely pose a security risk, since an
application that abused the API in the aforementioned manner could never work
properly.
9. Fixed issues in `jpeg*_skip_scanlines()` whereby, when skipping certain
groups of scanlines while using a non-fancy (merged or plain) upsampling
algorithm with a vertical sampling factor greater than 1, the wrong number of
scanlines were skipped and/or skipped scanlines were returned in subsequent
calls to `jpeg*_read_scanlines()`.
10. Hardened the TurboJPEG API against hypothetical applications that may
erroneously pass an invalid image to `tj3DecompressHeader()`, ignore a fatal
error thrown by that function, and attempt to call the function again with a
valid image. Under certain circumstances, this could have caused the values of
`TJPARAM_JPEGWIDTH` and `TJPARAM_JPEGHEIGHT` to reflect the dimensions reported
in the invalid image's header rather than the valid image's header, which might
have caused the caller to allocate too small of a buffer to hold the
decompressed valid image.
11. `tj3DecompressHeader()` now always removes the ICC profile (if any) that
was previously extracted into the TurboJPEG instance. This addresses an
oversight in 3.2 beta1[10] whereby, if the same TurboJPEG instance was used to
decompress or transform multiple JPEG images, then `tj3GetICCProfile()` and
`tj3TransformBufSize()` behaved as if JPEG images with no ICC profile contained
the last ICC profile extracted.
12. `tj3TransformBufSize()` has been improved in the following ways:
- The function now accounts for the size of all extra markers (including
comments, JFIF thumbnails, and Exif data) that will be copied from the source
image to the destination image, given the current value of
`TJPARAM_SAVEMARKERS` and the specified transform options.
- The function now returns accurate results regardless of the value of
`TJPARAM_SAVEMARKERS` at the time `tj3DecompressHeader()` was called. This
reflects the fact that only the current value of `TJPARAM_SAVEMARKERS` and the
specified transform options affect the marker copying behavior in
`tj3Transform()`.
13. Fixed issues in jpegtran that prevented a grayscale image from being
dropped into a subsampled input image or vice versa.
14. Hardened the TurboJPEG API against hypothetical applications that may
erroneously attempt to use the same insufficiently large pre-allocated
destination buffer for multiple simultaneous transform operations in
`tj3Transform()`. This caused a use-after-free issue, because the
caller-specified destination buffer was no longer valid after the first
transform operation reallocated it.
15. Fixed multiple issues in the standalone (non-merged) RGB565 color
converters that occurred when attempting to decompress more than one scanline
at a time from a vertically subsampled JPEG image. These issues caused a
buffer overrun and subsequent segfault if the output image rows were not 4-byte
aligned, the image width was 1, and both the vertical sampling factor and the
number of scanlines decompressed at a time were greater than 2. In other
cases, the issues caused incorrect dithered output. The issues could not be
reproduced using djpeg (which decompresses one scanline at a time) and were not
known to exist in any other applications.
Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
---
lfs/libjpeg | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lfs/libjpeg b/lfs/libjpeg index 4dcfaf4f0..17c22c2f0 100644 --- a/lfs/libjpeg +++ b/lfs/libjpeg @@ -24,7 +24,7 @@ include Config -VER = 3.2.0 +VER = 3.2.1 THISAPP = libjpeg-turbo-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_BLAKE2 = c50c985f8b870ab6467181f69e10f3ec2705cb349613b9178b293f136063e302087832d87f793b3d24ab721a2f5d76271760bd244d0766ab3b8cbe48ebf50cfa +$(DL_FILE)_BLAKE2 = eeae531ca1dd7665f72e97eb77d47f00251e965758cc6808434082b13c9ef193a86de9281a2e1c541339d00a8641d324452a8654c39e10c45530f5ea39175b5c install : $(TARGET)