Opened 2 years ago
Closed 2 years 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 , 2 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:2 by , 2 years ago
comment:3 by , 2 years 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.