- 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)
OBS-URL: https://build.opensuse.org/request/show/1204657
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libjpeg-turbo?expand=0&rev=74
* 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`.
OBS-URL: https://build.opensuse.org/package/show/graphics/libjpeg-turbo?expand=0&rev=157
- 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)
OBS-URL: https://build.opensuse.org/request/show/1198276
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libjpeg-turbo?expand=0&rev=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.)
OBS-URL: https://build.opensuse.org/request/show/1198096
OBS-URL: https://build.opensuse.org/package/show/graphics/libjpeg-turbo?expand=0&rev=155
- 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)
OBS-URL: https://build.opensuse.org/request/show/1146098
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libjpeg-turbo?expand=0&rev=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
OBS-URL: https://build.opensuse.org/request/show/1144368
OBS-URL: https://build.opensuse.org/package/show/graphics/libjpeg-turbo?expand=0&rev=153
- 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)
OBS-URL: https://build.opensuse.org/request/show/1136149
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libjpeg-turbo?expand=0&rev=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
OBS-URL: https://build.opensuse.org/request/show/1136025
OBS-URL: https://build.opensuse.org/package/show/graphics/libjpeg-turbo?expand=0&rev=149
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 such
OBS-URL: https://build.opensuse.org/package/show/graphics/libjpeg-turbo?expand=0&rev=147
- 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)
OBS-URL: https://build.opensuse.org/request/show/1067523
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libjpeg-turbo?expand=0&rev=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,
OBS-URL: https://build.opensuse.org/request/show/1066935
OBS-URL: https://build.opensuse.org/package/show/graphics/libjpeg-turbo?expand=0&rev=136
- update to 2.1.4:
* Fixed a regression introduced in 2.1.3 that caused build failures with
Visual Studio 2010.
* The tjDecompressHeader3() function in the TurboJPEG C API and the
TJDecompressor.setSourceImage() method in the TurboJPEG Java API now
accept "abbreviated table specification" (AKA "tables-only") datastreams,
which can be used to prime the decompressor with quantization and Huffman
tables that can be used when decompressing subsequent "abbreviated image"
datastreams.
* libjpeg-turbo now performs run-time detection of AltiVec instructions on
OS X/PowerPC systems if AltiVec instructions are not enabled at compile
time. This allows both AltiVec-equipped (PowerPC G4 and G5) and
non-AltiVec-equipped (PowerPC G3) CPUs to be supported using the same
build of libjpeg-turbo.
* Fixed an error ("Bogus virtual array access") that occurred when
attempting to decompress a progressive JPEG image with a height less than
or equal to one iMCU (8 * the vertical sampling factor) using
buffered-image mode with interblock smoothing enabled. This was a
regression introduced by 2.1 beta1[6(b)].
* Fixed two issues that prevented partial image decompression from working
properly with buffered-image mode:
* Attempting to call jpeg_crop_scanline() after jpeg_start_decompress()
but before jpeg_start_output() resulted in an error ("Improper call to
JPEG library in state 207".)
* Attempting to use jpeg_skip_scanlines() resulted in an error ("Bogus
virtual array access") under certain circumstances.
OBS-URL: https://build.opensuse.org/request/show/995212
OBS-URL: https://build.opensuse.org/package/show/graphics/libjpeg-turbo?expand=0&rev=132
- 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.
OBS-URL: https://build.opensuse.org/request/show/969262
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libjpeg-turbo?expand=0&rev=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.
OBS-URL: https://build.opensuse.org/request/show/967883
OBS-URL: https://build.opensuse.org/package/show/graphics/libjpeg-turbo?expand=0&rev=125
- 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)
OBS-URL: https://build.opensuse.org/request/show/933730
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libjpeg-turbo?expand=0&rev=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.
OBS-URL: https://build.opensuse.org/request/show/933591
OBS-URL: https://build.opensuse.org/package/show/graphics/libjpeg-turbo?expand=0&rev=124
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.
OBS-URL: https://build.opensuse.org/package/show/graphics/libjpeg-turbo?expand=0&rev=122
- 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.keyring
OBS-URL: https://build.opensuse.org/request/show/859049
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libjpeg-turbo?expand=0&rev=54
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.keyring
OBS-URL: https://build.opensuse.org/package/show/graphics/libjpeg-turbo?expand=0&rev=113
- Update to version 2.0.5
* Worked around issues in the MIPS DSPr2 SIMD extensions that caused failures
in the libjpeg-turbo regression tests. Specifically, the
jsimd_h2v1_downsample_dspr2() and jsimd_h2v2_downsample_dspr2() functions
in the MIPS DSPr2 SIMD extensions are now disabled until/unless they can be
fixed, and other functions that are incompatible with big endian MIPS CPUs
are disabled when building libjpeg-turbo for such CPUs.
* Fixed an oversight in the TJCompressor.compress(int) method in the
TurboJPEG Java API that caused an error ("java.lang.IllegalStateException:
No source image is associated with this instance") when attempting to use
that method to compress a YUV image.
* Fixed an issue (CVE-2020-13790) in the PPM reader that caused a buffer
overrun in cjpeg, TJBench, or the tjLoadImage() function if one of the
values in a binary PPM/PGM input file exceeded the maximum value defined in
the file's header and that maximum value was less than 255. libjpeg-turbo
1.5.0 already included a similar fix for binary PPM/PGM files with maximum
values greater than 255.
* The TurboJPEG API library's global error handler, which is used in
functions such as tjBufSize() and tjLoadImage() that do not require a
TurboJPEG instance handle, is now thread-safe on platforms that support
thread-local storage.
- Fix source verification
- Drop patches fixed upstream:
* ctest-depends.patch
* libjpeg-turbo-CVE-2020-13790.patch
- Run spec-cleaner
* Remove package groups
* Use make macros
- Update to version 2.0.5
* Worked around issues in the MIPS DSPr2 SIMD extensions that caused failures
in the libjpeg-turbo regression tests. Specifically, the
jsimd_h2v1_downsample_dspr2() and jsimd_h2v2_downsample_dspr2() functions
in the MIPS DSPr2 SIMD extensions are now disabled until/unless they can be
fixed, and other functions that are incompatible with big endian MIPS CPUs
are disabled when building libjpeg-turbo for such CPUs.
* Fixed an oversight in the TJCompressor.compress(int) method in the
TurboJPEG Java API that caused an error ("java.lang.IllegalStateException:
No source image is associated with this instance") when attempting to use
that method to compress a YUV image.
* Fixed an issue (CVE-2020-13790) in the PPM reader that caused a buffer
overrun in cjpeg, TJBench, or the tjLoadImage() function if one of the
values in a binary PPM/PGM input file exceeded the maximum value defined in
the file's header and that maximum value was less than 255. libjpeg-turbo
1.5.0 already included a similar fix for binary PPM/PGM files with maximum
values greater than 255.
* The TurboJPEG API library's global error handler, which is used in
functions such as tjBufSize() and tjLoadImage() that do not require a
TurboJPEG instance handle, is now thread-safe on platforms that support
thread-local storage.
- Drop patches fixed upstream:
* ctest-depends.patch
* libjpeg-turbo-CVE-2020-13790.patch
- Run spec-cleaner
* Remove package groups
* Use make macros (forwarded request 826111 from elimat)
OBS-URL: https://build.opensuse.org/request/show/826188
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libjpeg-turbo?expand=0&rev=53