Skip to content

Commit 8ecba36

Browse files
committed
ChangeLog.md: Document d743a2c
+ bump version to 2.1.5.1
1 parent 6316d4d commit 8ecba36

3 files changed

Lines changed: 23 additions & 1 deletion

File tree

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
/.gitattributes export-ignore
33
/.github export-ignore
44
*.ppm binary
5+
/ChangeLog.md conflict-marker-size=8

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ if(CMAKE_EXECUTABLE_SUFFIX)
1010
endif()
1111

1212
project(libjpeg-turbo C)
13-
set(VERSION 2.1.5)
13+
set(VERSION 2.1.5.1)
1414
set(COPYRIGHT_YEAR "1991-2023")
1515
string(REPLACE "." ";" VERSION_TRIPLET ${VERSION})
1616
list(GET VERSION_TRIPLET 0 VERSION_MAJOR)

ChangeLog.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,24 @@
1+
2.1.5.1
2+
=======
3+
4+
### Significant changes relative to 2.1.5:
5+
6+
1. The SIMD dispatchers in libjpeg-turbo 2.1.4 and prior stored the list of
7+
supported SIMD instruction sets in a global variable, which caused an innocuous
8+
race condition whereby the variable could have been initialized multiple times
9+
if `jpeg_start_*compress()` was called simultaneously in multiple threads.
10+
libjpeg-turbo 2.1.5 included an undocumented attempt to fix this race condition
11+
by making the SIMD support variable thread-local. However, that caused another
12+
issue whereby, if `jpeg_start_*compress()` was called in one thread and
13+
`jpeg_read_*()` or `jpeg_write_*()` was called in a second thread, the SIMD
14+
support variable was never initialized in the second thread. On x86 systems,
15+
this led the second thread to incorrectly assume that AVX2 instructions were
16+
always available, and when it attempted to use those instructions on older x86
17+
CPUs that do not support them, an illegal instruction error occurred. The SIMD
18+
dispatchers now ensure that the SIMD support variable is initialized before
19+
dispatching based on its value.
20+
21+
122
2.1.5
223
=====
324

0 commit comments

Comments
 (0)