5b8774e5c6- update to 3.0.1 3.0.1 ===== * 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. * Fixed a regression introduced by 3.0 beta2[6] that, in rare cases, caused the C Huffman encoder (which is not used by default on x86 and Arm CPUs) to generate incorrect results if the Neon SIMD extensions were explicitly disabled at build time (by setting the WITH_SIMD CMake variable to 0) in an AArch64 build of libjpeg-turbo. 3.0.0 ===== * 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 suchPetr Gajdos2023-11-16 13:32:09 +0000
9fb26b64c8Accepting request 1095708 from graphics
Dominique Leuenberger
2023-06-29 15:27:28 +0000
e2f53ca477Accepting request 967883 from home:dirkmueller:FactoryPetr Gajdos2022-04-11 18:18:29 +0000
1961b7fe25Accepting request 933730 from graphics
Dominique Leuenberger
2021-11-28 20:29:55 +0000
bba0261cecAccepting request 933591 from home:dirkmueller:FactoryPetr Gajdos2021-11-25 10:04:41 +0000
55676386f0Accepting request 923521 from graphics
Dominique Leuenberger
2021-10-06 17:49:59 +0000
d103b93121- previous version updates fixes following bugs: CVE-2014-9092, CVE-2018-14498, CVE-2019-2201, CVE-2020-17541 (bsc#1128712, bsc#1186764, bsc#807183, bsc#906761)Petr Gajdos2021-09-29 13:05:06 +0000
a30c7ebd31Accepting request 914598 from graphics
Dominique Leuenberger
2021-08-31 17:54:59 +0000
6e2a30ff1f- version update to 2.1.1 1. Fixed a regression introduced in 2.1.0 that caused build failures with non-GCC-compatible compilers for Un*x/Arm platforms. 2. Fixed a regression introduced by 2.1 beta1[13] that prevented the Arm 32-bit (AArch32) Neon SIMD extensions from building unless the C compiler flags included -mfloat-abi=softfp or -mfloat-abi=hard. 3. Fixed an issue in the AArch32 Neon SIMD Huffman encoder whereby reliance on undefined C compiler behavior led to crashes ("SIGBUS: illegal alignment") on Android systems when running AArch32/Thumb builds of libjpeg-turbo built with recent versions of Clang. 4. Added a command-line argument (-copy icc) to jpegtran that causes it to copy only the ICC profile markers from the source file and discard any other metadata. 5. libjpeg-turbo should now build and run on CHERI-enabled architectures, which use capability pointers that are larger than the size of size_t. 6. Fixed a regression introduced by 2.1 beta1[5] that caused a segfault in the 64-bit SSE2 Huffman encoder when attempting to losslessly transform a specially-crafted malformed JPEG image.Petr Gajdos2021-08-20 11:49:34 +0000
3e2a0d73edAccepting request 890324 from graphics
Dominique Leuenberger
2021-05-07 14:44:53 +0000
ba50c0c1edAccepting request 890322 from home:dirkmueller:FactoryPetr Gajdos2021-05-04 11:15:25 +0000
d236ef588aAccepting request 888800 from graphics
Dominique Leuenberger
2021-04-29 20:44:35 +0000
4dabc5c6a4Accepting request 888693 from home:Guillaume_G:branches:graphicsPetr Gajdos2021-04-27 07:58:42 +0000
d345a60182Accepting request 862563 from graphics
Dominique Leuenberger
2021-01-14 14:04:39 +0000
c6188bbe9eAccepting request 862263 from home:Andreas_Schwab:FactoryPetr Gajdos2021-01-12 09:46:34 +0000
69ce102dffAccepting request 859049 from graphics
Dominique Leuenberger
2020-12-30 16:11:45 +0000
40ed13eecb- version update to 2.0.6 1. Fixed "using JNI after critical get" errors that occurred on Android platforms when using any of the YUV encoding/compression/decompression/decoding methods in the TurboJPEG Java API. 2. Fixed or worked around multiple issues with jpeg_skip_scanlines(): - Fixed segfaults or "Corrupt JPEG data: premature end of data segment" errors in jpeg_skip_scanlines() that occurred when decompressing 4:2:2 or 4:2:0 JPEG images using merged (non-fancy) upsampling/color conversion (that is, when setting cinfo.do_fancy_upsampling to FALSE.) 2.0.0[6] was a similar fix, but it did not cover all cases. - jpeg_skip_scanlines() now throws an error if two-pass color quantization is enabled. Two-pass color quantization never worked properly with jpeg_skip_scanlines(), and the issues could not readily be fixed. - Fixed an issue whereby jpeg_skip_scanlines() always returned 0 when skipping past the end of an image. 3. The Arm 64-bit (Armv8) Neon SIMD extensions can now be built using MinGW toolchains targetting Arm64 (AArch64) Windows binaries. 4. Fixed unexpected visual artifacts that occurred when using jpeg_crop_scanline() and interblock smoothing while decompressing only the DC scan of a progressive JPEG image. 5. Fixed an issue whereby libjpeg-turbo would not build if 12-bit-per-component JPEG support (WITH_12BIT) was enabled along with libjpeg v7 or libjpeg v8 API/ABI emulation (WITH_JPEG7 or WITH_JPEG8.) - modified sources % libjpeg-turbo.keyringPetr Gajdos2020-12-28 15:40:36 +0000
633ff0282bAccepting request 826188 from graphics
Dominique Leuenberger
2020-08-15 19:17:56 +0000
2e077f9912Accepting request 826111 from home:elimat:branches:graphicsPetr Gajdos2020-08-13 07:14:02 +0000
e4a73e6d9fAccepting request 812575 from graphics
Dominique Leuenberger
2020-06-09 22:34:41 +0000
1711474781- security update - added patches fix CVE-2020-13790 [bsc#1172491], heap-based buffer over-read in get_rgb_row() in rdppm.c via a malformed PPM input file + libjpeg-turbo-CVE-2020-13790.patchPetr Gajdos2020-06-08 11:54:20 +0000
5ce7ee4837- security update - added patches fix CVE-2020-13790 [bsc#1172491], heap-based buffer over-read in get_rgb_row() in rdppm.c via a malformed PPM input file + libjpeg-turbo-CVE-2020-13790.patchPetr Gajdos2020-06-08 11:50:37 +0000
ca6e17a150Accepting request 789669 from graphics
Dominique Leuenberger
2020-03-31 15:32:36 +0000
36373a831cAccepting request 735600 from graphics
Dominique Leuenberger
2019-10-14 10:30:55 +0000
8d141fa87bAccepting request 735401 from home:iznogood:branches:graphicsPetr Gajdos2019-10-07 07:26:37 +0000
c3b6c205b4Accepting request 689002 from graphics
Dominique Leuenberger
2019-03-28 21:44:45 +0000
5f700723e3- use -O0 for debugging like everywhere (better experience)Petr Gajdos2019-03-27 06:47:52 +0000
cec5778d77Accepting request 684675 from graphics
Dominique Leuenberger
2019-03-18 09:36:15 +0000
b61c1b9bd4- updated to version 2.0.2: 1. Fixed a regression introduced by 2.0.1[5] that prevented a runtime search path (rpath) from being embedded in the libjpeg-turbo shared libraries and executables for macOS and iOS. This caused a fatal error of the form "dyld: Library not loaded" when attempting to use one of the executables, unless DYLD_LIBRARY_PATH was explicitly set to the location of the libjpeg-turbo shared libraries. 2. Fixed an integer overflow and subsequent segfault (CVE-2018-20330) that occurred when attempting to load a BMP file with more than 1 billion pixels using the tjLoadImage() function. 3. Fixed a buffer overrun (CVE-2018-19664) that occurred when attempting to decompress a specially-crafted malformed JPEG image to a 256-color BMP using djpeg. 4. Fixed a floating point exception that occurred when attempting to decompress a specially-crafted malformed JPEG image with a specified image width or height of 0 using the C version of TJBench. 5. The TurboJPEG API will now decompress 4:4:4 JPEG images with 2x1, 1x2, 3x1, or 1x3 luminance and chrominance sampling factors. This is a non-standard way of specifying 1x subsampling (normally 4:4:4 JPEGs have 1x1 luminance and chrominance sampling factors), but the JPEG format and the libjpeg API both allow it. 6. Fixed a regression introduced by 2.0 beta1[7] that caused djpeg to generate incorrect PPM images when used with the -colors option. 7. Fixed an issue whereby a static build of libjpeg-turbo (a build in which ENABLE_SHARED is 0) could not be installed using the Visual Studio IDE. 8. Fixed a severe performance issue in the Loongson MMI SIMD extensions that occurred when compressing RGB images whose image rows were not 64-bit-aligned. - modified patches % ctest-depends.patch (refreshed) - deleted patchesPetr Gajdos2019-03-13 12:04:41 +0000
eb6b898c44Accepting request 668260 from graphics
Dominique Leuenberger
2019-01-26 21:20:02 +0000
c4626aa891Accepting request 668258 from home:jengelh:branches:graphicsPetr Gajdos2019-01-24 09:15:00 +0000
9646b240b0Accepting request 662705 from graphics
Dominique Leuenberger
2019-01-08 11:19:09 +0000
caba68d4f6Accepting request 656851 from graphics
Dominique Leuenberger
2018-12-19 12:24:34 +0000
e2b114a63d- asan_build: build ASAN included - debug_build: build more suitable for debuggingPetr Gajdos2018-12-03 13:22:26 +0000
f41d777274Accepting request 648719 from graphics
Dominique Leuenberger
2018-11-18 22:21:04 +0000
61501d0852- update to version 2.0.1: * jsimd_quantize_float_dspr2() and jsimd_convsamp_float_dspr2() functions in the MIPS DSPr2 SIMD extensions are now disabled at compile time if the soft float ABI is enabled * Fixed a regression in the SIMD feature detection code, introduced by the AVX2 SIMD extensions * Fixed out-of-bounds read in cjpeg that occurred when attempting to compress a specially-crafted malformed color-index (8-bit-per-sample) Targa filePetr Gajdos2018-11-13 11:14:28 +0000
187f34a83aAccepting request 637384 from graphics
Dominique Leuenberger
2018-10-01 07:05:31 +0000
8be3fb3b5bAccepting request 637382 from home:Andreas_Schwab:FactoryPetr Gajdos2018-09-24 08:15:46 +0000
019e0ef9bfAccepting request 628245 from graphics
Dominique Leuenberger
2018-08-10 07:45:40 +0000
adaa56e011Accepting request 628184 from home:jengelh:branches:graphics
Ismail Dönmez
2018-08-08 18:05:14 +0000
ee450af7a1Accepting request 626896 from graphics
Dominique Leuenberger
2018-08-07 07:40:00 +0000
70d2b5c6bcAccepting request 626889 from home:scarabeus_iv:branches:graphicsPetr Gajdos2018-08-01 12:49:51 +0000
f3ac847c3bAccepting request 617768 from graphics
Yuchen Lin
2018-06-22 11:16:26 +0000
54982bc1a9Accepting request 558098 from graphics
Dominique Leuenberger
2017-12-23 11:18:05 +0000
587fb1a664- - update to version 1.5.3 1. Fixed a NullPointerException in the TurboJPEG Java wrapper that occurred when using the YUVImage constructor that creates an instance backed by separate image planes and allocates memory for the image planes. 2. Fixed an issue whereby the Java version of TJUnitTest would fail when testing BufferedImage encoding/decoding on big endian systems. 3. Fixed a segfault in djpeg that would occur if an output format other than PPM/PGM was selected along with the -crop option. The -crop option now works with the GIF and Targa formats as well (unfortunately, it cannot be made to work with the BMP and RLE formats due to the fact that those output engines write scanlines in bottom-up order.) djpeg will now exit gracefully if an output format other than PPM/PGM, GIF, or Targa is selected along with the -crop option. 4. Fixed an issue whereby jpeg_skip_scanlines() would segfault if color quantization was enabled. 5. TJBench (both C and Java versions) will now display usage information if any command-line argument is unrecognized. This prevents the program from silently ignoring typos. 6. Fixed an access violation in tjbench.exe (Windows) that occurred when the program was used to decompress an existing JPEG image. 7. Fixed an ArrayIndexOutOfBoundsException in the TJExample Java program that occurred when attempting to decompress a JPEG image that had been compressed with 4:1:1 chrominance subsampling. 8. Fixed an issue whereby, when using jpeg_skip_scanlines() to skip to the end of a single-scan (non-progressive) image, subsequent calls to jpeg_consume_input() would return JPEG_SUSPENDED rather than JPEG_REACHED_EOI. 9. jpeg_crop_scanlines() now works correctly when decompressing grayscale JPEG images that were compressed with a sampling factor other than 1 (for instance, with cjpeg -grayscale -sample 2x2).Petr Gajdos2017-12-18 13:29:47 +0000
14882e0733- update to version 1.5.3 1. Fixed a NullPointerException in the TurboJPEG Java wrapper that occurred when using the YUVImage constructor that creates an instance backed by separate image planes and allocates memory for the image planes. 2. Fixed an issue whereby the Java version of TJUnitTest would fail when testing BufferedImage encoding/decoding on big endian systems. 3. Fixed a segfault in djpeg that would occur if an output format other than PPM/PGM was selected along with the -crop option. The -crop option now works with the GIF and Targa formats as well (unfortunately, it cannot be made to work with the BMP and RLE formats due to the fact that those output engines write scanlines in bottom-up order.) djpeg will now exit gracefully if an output format other than PPM/PGM, GIF, or Targa is selected along with the -crop option. 4. Fixed an issue whereby jpeg_skip_scanlines() would segfault if color quantization was enabled. 5. TJBench (both C and Java versions) will now display usage information if any command-line argument is unrecognized. This prevents the program from silently ignoring typos. 6. Fixed an access violation in tjbench.exe (Windows) that occurred when the program was used to decompress an existing JPEG image. 7. Fixed an ArrayIndexOutOfBoundsException in the TJExample Java program that occurred when attempting to decompress a JPEG image that had been compressed with 4:1:1 chrominance subsampling. 8. Fixed an issue whereby, when using jpeg_skip_scanlines() to skip to the end of a single-scan (non-progressive) image, subsequent calls to jpeg_consume_input() would return JPEG_SUSPENDED rather than JPEG_REACHED_EOI. 9. jpeg_crop_scanlines() now works correctly when decompressing grayscale JPEG images that were compressed with a sampling factor other than 1 (for instance, with cjpeg -grayscale -sample 2x2).Petr Gajdos2017-12-18 13:08:44 +0000
cf17e60e04Accepting request 533647 from graphics
Dominique Leuenberger
2017-10-18 10:50:21 +0000
39d197e0da- Update to version 1.5.2 + Fixed several memory leaks in the TurboJPEG API library that could occur if the library was built with certain compilers and optimization levels. + The libjpeg-turbo memory manager will now honor the max_memory_to_use structure member in jpeg_memory_mgr, which can be set to the maximum amount of memory (in bytes) that libjpeg-turbo should use during decompression or multi-pass (including progressive) compression. This limit can also be set using the JPEGMEM environment variable or using the -maxmemory switch in cjpeg/djpeg/jpegtran. + TJBench will now run each benchmark for 1 second prior to starting the timer, in order to improve the consistency of the results. Furthermore, the -warmup option is now used to specify the amount of warmup time rather than the number of warmup iterations. + Fixed an error (short jump is out of range) that occurred when assembling the 32-bit x86 SIMD extensions with NASM versions prior to 2.04. + Fixed a regression introduced by 1.5 beta1[11] that prevented the Java version of TJBench from outputting any reference images (the -nowrite switch was accidentally enabled by default.) libjpeg-turbo should now build and run with full AltiVec SIMD acceleration on PowerPC-based AmigaOS 4 and OpenBSD systems.Petr Gajdos2017-10-12 10:36:08 +0000
c2d7b0c04bAccepting request 532990 from graphics
Dominique Leuenberger
2017-10-11 21:01:56 +0000
c25d5e05deAccepting request 532986 from home:scarabeus_iv:branches:graphicsPetr Gajdos2017-10-10 11:34:26 +0000
4defc3d7a8Accepting request 504426 from graphics
Dominique Leuenberger
2017-06-21 11:49:50 +0000
bec118ee3bAccepting request 503929 from home:jbohac:branches:graphics
OBS User mrdocs
2017-06-18 00:30:58 +0000
625dc06cd2Accepting request 451226 from graphics
Dominique Leuenberger
2017-01-25 21:31:21 +0000
a4655283d1Accepting request 451086 from home:bmwiedemann:reproducible
Ismail Dönmez
2017-01-18 15:59:51 +0000
23051f448bAccepting request 429280 from graphics
Dominique Leuenberger
2016-09-25 12:28:07 +0000
6b08fa38b1- Update to version 1.5.1 + Fix for PowerPC platforms lacking AltiVec instructions + Fix ABI problem with clang/llvm on aarch64. + Fancy upsampling is now supported when decompressing JPEG images that use 4:4:0 (h1v2) chroma subsampling. + If merged upsampling isn't SIMD-accelerated but YCbCr-to-RGB conversion is, then libjpeg-turbo will now disable merged upsampling when decompressing YCbCr JPEG images into RGB or extended RGB output images. This significantly speeds up the decompression of 4:2:0 and 4:2:2 JPEGs on ARM platforms if fancy upsampling is not used (for example, if the -nosmooth option to djpeg is specified.) + The TurboJPEG API will now decompress 4:2:2 and 4:4:0 JPEG images with 2x2 luminance sampling factors and 2x1 or 1x2 chrominance sampling factors. + Fixed an unsigned integer overflow in the libjpeg memory manager. + Fixed additional negative left shifts and other issues reported by the GCC and Clang undefined behavior sanitizers when attempting to decompress specially-crafted malformed JPEG images. None of these issues posed a security threat, but removing the warnings makes it easier to detect actual security issues, should they arise in the future. + Fixed an out-of-bounds array reference, introduced by 1.4.902 and detected by the Clang undefined behavior sanitizer, that could be triggered by a specially-crafted malformed JPEG image with more than four components. Because the out-of-bounds reference was still within the same structure, it was not known to pose a security threat, but removing the warning makes it easier to detect actual security issues, should they arise in the future.
Ismail Dönmez
2016-09-21 11:02:46 +0000
6475f7f6bfAccepting request 400622 from graphics
Dominique Leuenberger
2016-06-13 19:48:45 +0000
78fc556257- Update to version 1.5.0 + Fixed an issue whereby a malformed motion-JPEG frame could cause the "fast path" of libjpeg-turbo's Huffman decoder to read from uninitialized memory. + Added libjpeg-turbo version and build information to the global string table of the libjpeg and TurboJPEG API libraries. + Fixed a couple of issues in the PPM reader that would cause buffer overruns in cjpeg if one of the values in a binary PPM/PGM input file exceeded the maximum value defined in the file's header. libjpeg-turbo 1.4.2 already included a similar fix for ASCII PPM/PGM files. Note that these issues were not security bugs, since they were confined to the cjpeg program and did not affect any of the libjpeg-turbo libraries. + Fixed an issue whereby attempting to decompress a JPEG file with a corrupt header using the tjDecompressToYUV2() function would cause the function to abort without returning an error and, under certain circumstances, corrupt the stack. This only occurred if tjDecompressToYUV2() was called prior to calling tjDecompressHeader3(), or if the return value from tjDecompressHeader3() was ignored (both cases represent incorrect usage of the TurboJPEG API.) + The jpeg_stdio_src(), jpeg_mem_src(), jpeg_stdio_dest(), and jpeg_mem_dest() functions in the libjpeg API will now throw an error if a source/destination manager has already been assigned to the compress or decompress object by a different function or by the calling program.
Ismail Dönmez
2016-06-08 08:11:04 +0000
58fe547543Accepting request 369636 from graphics
Dominique Leuenberger
2016-03-16 09:26:12 +0000