Revisions of libjpeg-turbo
Ana Guerrero (anag+factory)
accepted
request 1204657
from
Petr Gajdos (pgajdos)
(revision 74)
- update to 3.0.4: * Fixed an issue whereby the CPU usage of the default marker processor in the decompressor grew exponentially with the number of markers. This caused an unreasonable slow-down in `jpeg_read_header()` if an application called `jpeg_save_markers()` to save markers of a particular type and then attempted to decompress a JPEG image containing an excessive number of markers of that type. * Hardened the default marker processor in the decompressor to guard against an issue (exposed by 3.0 beta2[6]) whereby attempting to decompress a specially-crafted malformed JPEG image (specifically an image with a complete 12-bit-per-sample Start Of Frame segment followed by an incomplete 8-bit-per-sample Start Of Frame segment) using buffered-image mode and input prefetching caused a segfault if the `fill_input_buffer()` method in the calling application's custom source manager incorrectly returned `FALSE` in response to a prematurely-terminated JPEG data stream. * Fixed an issue in cjpeg whereby, when generating a 12-bit-per-sample or 16-bit-per-sample lossless JPEG image, specifying a point transform value greater than 7 resulted in an error ("Invalid progressive/lossless parameters") unless the `-precision` option was specified before the `-lossless` option. * Fixed a regression introduced by 3.0.3[3] that made it impossible for calling applications to generate 12-bit-per-sample arithmetic-coded lossy JPEG images using the TurboJPEG API. * Fixed an error ("Destination buffer is not large enough") that occurred when attempting to generate a full-color lossless JPEG image using the TurboJPEG Java API's `byte[] TJCompressor.compress()` method if the value of `TJ.PARAM_SUBSAMP` was not `TJ.SAMP_444`. (forwarded request 1204571 from dirkmueller)
Dominique Leuenberger (dimstar_suse)
accepted
request 1198276
from
Petr Gajdos (pgajdos)
(revision 73)
- update to 3.0.3: * The x86-64 SIMD extensions now include support for Intel Control-flow Enforcement Technology (CET), which is enabled automatically if CET is enabled in the C compiler. * Fixed a regression introduced by 3.0 beta2[6] that made it impossible for calling applications to supply custom Huffman tables when generating 12-bit-per-component lossy JPEG images using the libjpeg API. * Fixed a segfault that occurred when attempting to use the jpegtran `-drop` option with a specially-crafted malformed input image or drop image (specifically an image in which all of the scans contain fewer components than the number of components specified in the Start Of Frame segment.) (forwarded request 1198096 from dirkmueller)
Ana Guerrero (anag+factory)
accepted
request 1146098
from
Petr Gajdos (pgajdos)
(revision 72)
- Update to version 3.0.2 * Fixed a signed integer overflow in the tj3CompressFromYUV8(), tj3DecodeYUV8(), tj3DecompressToYUV8(), and tj3EncodeYUV8() functions, detected by the Clang and GCC undefined behavior sanitizers, that could be triggered by setting the align parameter to an unreasonably large value. This issue did not pose a security threat, but removing the warning made it easier to detect actual security issues, should they arise in the future. * Introduced a new parameter (TJPARAM_MAXMEMORY in the TurboJPEG C API and TJ.PARAM_MAXMEMORY in the TurboJPEG Java API) and a corresponding TJBench option (-maxmemory) for specifying the maximum amount of memory (in megabytes) that will be allocated for intermediate buffers, which are used with progressive JPEG compression and decompression, optimized baseline entropy coding, lossless JPEG compression, and lossless transformation. The new parameter and option serve the same purpose as the max_memory_to_use field in the jpeg_memory_mgr struct in the libjpeg API, the JPEGMEM environment variable, and the cjpeg/djpeg/jpegtran -maxmemory option. * Introduced a new parameter (TJPARAM_MAXPIXELS in the TurboJPEG C API and TJ.PARAM_MAXPIXELS in the TurboJPEG Java API) and a corresponding TJBench option (-maxpixels) for specifying the maximum number of pixels that the decompression, lossless transformation, and packed-pixel image loading functions/methods will process. * Fixed an error ("Unsupported color conversion request") that occurred when attempting to decompress a 3-component lossless JPEG image without an Adobe APP14 marker. The decompressor (forwarded request 1144368 from mnhauke)
Ana Guerrero (anag+factory)
accepted
request 1139079
from
Petr Gajdos (pgajdos)
(revision 71)
- Do not require SIMD support when it does not exist (forwarded request 1138991 from Andreas_Schwab)
Dominique Leuenberger (dimstar_suse)
accepted
request 1136149
from
Petr Gajdos (pgajdos)
(revision 70)
- update to 3.0.1 (bsc#1211542, CVE-2023-2804): * The x86-64 SIMD functions now use a standard stack frame, prologue, and epilogue so that debuggers and profilers can reliably capture backtraces from within the functions. * Fixed two minor issues in the interblock smoothing algorithm that caused mathematical (but not necessarily perceptible) edge block errors when decompressing progressive JPEG images exactly two MCU blocks in width or that use vertical chrominance subsampling. * The TurboJPEG API now supports 4:4:1 (transposed 4:1:1) chrominance subsampling, which allows losslessly transposed or rotated 4:1:1 JPEG images to be losslessly cropped, partially decompressed, or decompressed to planar YUV images. * Fixed various segfaults and buffer overruns (CVE-2023-2804) * that occurred when attempting to decompress various specially-crafted malformed 12-bit-per-component and 16-bit-per-component lossless JPEG images using color quantization or merged chroma upsampling/color conversion. The underlying cause of these issues was that the color quantization and merged chroma upsampling/color conversion algorithms were not designed with lossless decompression in mind. Since libjpeg-turbo explicitly does not support color conversion when compressing or decompressing lossless JPEG images, merged chroma upsampling/color conversion never should have been enabled for such images. Color quantization is a legacy feature that serves little or no purpose with lossless JPEG images, so it is also now disabled when decompressing such images. (As a result, djpeg can no longer decompress a lossless JPEG image into a GIF image.) * Fixed an oversight in 1.4 beta1[8] that caused various (forwarded request 1136025 from dirkmueller)
Dominique Leuenberger (dimstar_suse)
accepted
request 1095708
from
Petr Gajdos (pgajdos)
(revision 69)
- merge two spec files into one
Dominique Leuenberger (dimstar_suse)
accepted
request 1084656
from
Petr Gajdos (pgajdos)
(revision 68)
- Add _multibuild to define 2nd spec file as additional flavor. Eliminates the need for source package links in OBS. (forwarded request 1084624 from dimstar)
Dominique Leuenberger (dimstar_suse)
accepted
request 1071086
from
Petr Gajdos (pgajdos)
(revision 67)
- Build AVX2 enabled hwcaps library for x86_64-v3 (forwarded request 1070184 from pluskalm)
Dominique Leuenberger (dimstar_suse)
accepted
request 1067523
from
Petr Gajdos (pgajdos)
(revision 66)
- update to 2.1.5.1: * 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. * 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. * 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 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. * 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. * 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. * 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, (forwarded request 1066935 from polslinux)
Dominique Leuenberger (dimstar_suse)
accepted
request 1046153
from
Petr Gajdos (pgajdos)
(revision 65)
- Add explicit provides for jpegtran, so it can be installed easier Adds an explicit provides line, so that "zypper in jpegtran" will work in future instead of having to search which package contains it. I don't consider the other bin-contents important enough, only jpegtran. (forwarded request 1045193 from dstoecker)
Dominique Leuenberger (dimstar_suse)
accepted
request 997984
from
Dirk Stoecker (dstoecker)
(revision 64)
Dominique Leuenberger (dimstar_suse)
accepted
request 987151
from
Marcus Meissner (msmeissn)
(revision 63)
Dominique Leuenberger (dimstar_suse)
accepted
request 970678
from
Petr Gajdos (pgajdos)
(revision 62)
- Use nasm instead of yasm, the latter has not released any update in 7 years. (forwarded request 970636 from elvigia)
Dominique Leuenberger (dimstar_suse)
accepted
request 969262
from
Petr Gajdos (pgajdos)
(revision 61)
- update to 2.1.3: * Fixed a regression introduced by 2.0 beta1[7] whereby cjpeg compressed PGM input files into full-color JPEG images unless the `-grayscale` option was used. * cjpeg now automatically compresses GIF and 8-bit BMP input files into grayscale JPEG images if the input files contain only shades of gray. * The build system now enables the intrinsics implementation of the AArch64 (Arm 64-bit) Neon SIMD extensions by default when using GCC 12 or later. * Fixed a segfault that occurred while decompressing a 4:2:0 JPEG image using the merged (non-fancy) upsampling algorithms (that is, with `cinfo.do_fancy_upsampling` set to `FALSE`) along with `jpeg_crop_scanline()`. Specifically, the segfault occurred if the number of bytes remaining in the output buffer was less than the number of bytes required to represent one uncropped scanline of the output image. For that reason, the issue could only be reproduced using the libjpeg API, not using djpeg.
Dominique Leuenberger (dimstar_suse)
accepted
request 933730
from
Petr Gajdos (pgajdos)
(revision 60)
- update to 2.1.2: * Fixed a regression introduced by 2.1 beta1[13] that caused the remaining GAS implementations of AArch64 (Arm 64-bit) Neon SIMD functions (which are used by default with GCC for performance reasons) to be placed in the `.rodata` section rather than in the `.text` section. This caused the GNU linker to automatically place the `.rodata` section in an executable segment, which prevented libjpeg-turbo from working properly with other linkers and also represented a potential security risk. * Fixed an issue whereby the `tjTransform()` function incorrectly computed the MCU block size for 4:4:4 JPEG images with non-unary sampling factors and thus unduly rejected some cropping regions, even though those regions aligned with 8x8 MCU block boundaries. * Fixed a regression introduced by 2.1 beta1[13] that caused the build system to enable the Arm Neon SIMD extensions when targetting Armv6 and other legacy architectures that do not support Neon instructions. * libjpeg-turbo now performs run-time detection of AltiVec instructions on FreeBSD/PowerPC systems if AltiVec instructions are not enabled at compile time. This allows both AltiVec-equipped and non-AltiVec-equipped CPUs to be supported using the same build of libjpeg-turbo. * cjpeg now accepts a `-strict` argument similar to that of djpeg and jpegtran, which causes the compressor to abort if an LZW-compressed GIF input image contains incomplete or corrupt image data. (forwarded request 933591 from dirkmueller)
Dominique Leuenberger (dimstar_suse)
accepted
request 923521
from
Factory Maintainer (factory-maintainer)
(revision 59)
Automatic submission by obs-autosubmit
Dominique Leuenberger (dimstar_suse)
accepted
request 914598
from
Factory Maintainer (factory-maintainer)
(revision 58)
Automatic submission by obs-autosubmit
Dominique Leuenberger (dimstar_suse)
accepted
request 890324
from
Petr Gajdos (pgajdos)
(revision 57)
- disable SIMD for armv6hl, not available (forwarded request 890322 from dirkmueller)
Dominique Leuenberger (dimstar_suse)
accepted
request 888800
from
Petr Gajdos (pgajdos)
(revision 56)
- version update to 2.1.0 lot of changes, see * https://github.com/libjpeg-turbo/libjpeg-turbo/releases/tag/2.0.90 * https://github.com/libjpeg-turbo/libjpeg-turbo/releases/tag/2.1.0
Dominique Leuenberger (dimstar_suse)
accepted
request 862563
from
Petr Gajdos (pgajdos)
(revision 55)
- Fix setting of FLOATTEST (forwarded request 862263 from Andreas_Schwab)
Displaying revisions 1 - 20 of 74