Opened 16 months ago
Closed 16 months ago
#17612 closed enhancement (fixed)
libjpeg-turbo-2.1.5.1
Reported by: | Bruce Dubbs | Owned by: | Bruce Dubbs |
---|---|---|---|
Priority: | normal | Milestone: | 11.3 |
Component: | BOOK | Version: | git |
Severity: | normal | Keywords: | |
Cc: |
Description
New nano version.
Change History (3)
comment:1 by , 16 months ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:2 by , 16 months ago
comment:3 by , 16 months ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Fixed at commit
7fb10a3dd2 Update to libjpeg-turbo-2.1.5.1. fad9b8d31b Update to stunnel-5.68. ebbe5a8fb5 Update to libreoffice-7.5.0.3.
Note:
See TracTickets
for help on using tickets.
2.1.5.1
Significant changes relative to 2.1.5:
The SIMD dispatchers in libjpeg-turbo 2.1.4 and prior stored the list of supported SIMD instruction sets in a global variable, which caused an innocuous race condition whereby the variable could have been initialized multiple times if
jpeg_start_*compress()
was called simultaneously in multiple threads. libjpeg-turbo 2.1.5 included an undocumented attempt to fix this race condition by making the SIMD support variable thread-local. However, that caused another issue whereby, ifjpeg_start_*compress()
was called in one thread andjpeg_read_*()
orjpeg_write_*()
was called in a second thread, the SIMD support variable was never initialized in the second thread. On x86 systems, this led the second thread to incorrectly assume that AVX2 instructions were always available, and when it attempted to use those instructions on older x86 CPUs that do not support them, an illegal instruction error occurred. The SIMD dispatchers now ensure that the SIMD support variable is initialized before dispatching based on its value.