Skip to content

Commit 2aca18b

Browse files
committed
Updates for 1.5.2 release
Note although we have added a single new API in c_range_coder.h, this file is entirely static inline functions so it does not have implications on library ABI version compatibility.
1 parent ec45680 commit 2aca18b

File tree

3 files changed

+65
-3
lines changed

3 files changed

+65
-3
lines changed

NEWS.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,65 @@
1+
Release 1.5.2: 6th October 2023
2+
-------------------------------
3+
4+
*** SECURITY FIXES ***
5+
6+
This release contains multiple bug fixes, including a couple
7+
buffer overruns that could corrupt memory when used in specific
8+
scenarios. These have not been observed with real data, but could
9+
represent an attack vector for a malicious user. (We know of no
10+
exploit.)
11+
12+
13+
Changes
14+
15+
- The range coder has been extended to do bounds checking if the
16+
new RC_SetOutputEnd() is called. This has a small performance hit
17+
for the encoder, depending on compiler, but tests showed within 10%
18+
at worst.
19+
20+
Bug fixes
21+
22+
- Fix write-buffer overruns in fqzcomp and name tokeniser.
23+
24+
SECURITY ISSUE: FQZComp could overflow the computed maximum growth
25+
size, causing writes beyond the ends of the allocated memory. This
26+
is triggered by many very small 1bp reads. Fixed the maximum
27+
bounds for compressed data.
28+
29+
SECURITY ISSUE: The name tokeniser using the maximum number of
30+
tokens (128) would erroneously write a 129th token. This is a
31+
restricted overflow of a few bytes.
32+
33+
(PR#97, reported by Shubham Chandak)
34+
35+
- Fix an maximum 8-byte read overflow in the AVX2 rans decoder.
36+
SECURITY ISSUE: This was only present when using gcc.
37+
(PR#100, reported by Rob Davies)
38+
39+
- The rANS Order-1 SSE4 decoder could decode incorrectly.
40+
When a single symbol only occurs and we're using 12-bit freqs, the
41+
frequency of 4096 was interpreted as freq 0. This only happens in
42+
the non-SIMD tidy-up stage at the end of the decode, so at worst the
43+
final 31 bytes may be incorrect. (PR#102)
44+
45+
- Fixed a 1-byte heap read-buffer overflow. Existed since 6a87ead2
46+
(Oct 2021). Low severity security due to size and high likelihood
47+
it's just malloc meta-data. (PR#95; OSS-Fuzz 62270)
48+
49+
- rans_compress_4x16 now works on zero length input.
50+
Previously this was giving divide-by-zero errors.
51+
(PR#101, reported by Shubham Chandak)
52+
53+
- Remove asserts which caused warnings about unused variables when
54+
building with -DNDEBUG.
55+
56+
- Fix ARM builds when HWCAP_ASIMD is missing (on Conda) (PR#91)
57+
58+
- Improve FreeBSD CI testing
59+
60+
- Fix undefined behaviour from signed bit-shifting (PR#90).
61+
62+
163
Release 1.5.1: 19th July 2023
264
-----------------------------
365

configure.ac

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
dnl Process this file with autoconf to produce a configure script.
2-
AC_INIT(htscodecs, 1.5.1)
2+
AC_INIT(htscodecs, 1.5.2)
33

44
# Some functions benefit from -O3 optimisation, so if the user didn't
55
# explicitly set any compiler flags, we'll plump for O3.
@@ -61,7 +61,7 @@ AM_EXTRA_RECURSIVE_TARGETS([fuzz])
6161
# libhtscodecs.so.1.1.0
6262

6363
VERS_CURRENT=3
64-
VERS_REVISION=3
64+
VERS_REVISION=4
6565
VERS_AGE=1
6666
AC_SUBST(VERS_CURRENT)
6767
AC_SUBST(VERS_REVISION)

htscodecs/htscodecs.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
* Note currently this needs manually editing as it isn't automatically
4444
* updated by autoconf.
4545
*/
46-
#define HTSCODECS_VERSION 100501
46+
#define HTSCODECS_VERSION 100502
4747

4848
/*
4949
* A const string form of the HTSCODECS_VERSION define.

0 commit comments

Comments
 (0)