3.1.3
Assets
- libjpeg-turbo-3.1.3.tar.gz is the official source tarball for this release. The automatically generated "Source code" assets are not supported.
- Refer to https://libjpeg-turbo.org/Downloads/DigitalSignatures for information regarding the methods used to sign the files in this release and instructions for verifying the signatures.
- Refer to https://libjpeg-turbo.org/Documentation/OfficialBinaries for information regarding the compatibility of the binary packages in this release.
Support
Code Quality: Stable
Current Support Category: Active
Release Notes
Significant changes relative to 3.1.2:
-
Hardened the TurboJPEG API against hypothetical applications that may erroneously call
tj*Compress*()ortj*Transform()with a reused JPEG destination buffer pointer while specifying a destination buffer size of 0. -
Hardened the TurboJPEG API against hypothetical applications that may erroneously set
TJPARAM_LOSSLESSorTJPARAM_COLORSPACEprior to callingtj3EncodeYUV*8()ortj3CompressFromYUV*8().tj3EncodeYUV*8()andtj3CompressFromYUV*8()now ignoreTJPARAM_LOSSLESSandTJPARAM_COLORSPACE. -
Hardened the TurboJPEG Java API against hypothetical applications that may erroneously pass huge X or Y offsets to one of the compression, YUV encoding, decompression, or YUV decoding methods, leading to signed integer overflow in the JNI wrapper's buffer size checks that rendered those checks ineffective.
-
Fixed an issue in the TurboJPEG Java API whereby
TJCompressor.getSourceBuf()sometimes returned the buffer from a previous invocation ofTJCompressor.loadSourceImage()if the target data precision was changed before the most recent invocation. -
Fixed an issue in the PPM reader that caused incorrect pixels to be generated when using
tj3LoadImage*()orTJCompressor.loadSourceImage()to load a PBMPLUS (PPM/PGM) file into a CMYK buffer with a different data precision than that of the file.