Releases: knik0/faad2
FAAD2 2.11.1
[ Fabian Greffrath ]
- Build shared libraries and hide symbols by default.
- Install man page by default.
- Check for
lrintf()
availability, link with-lm
and defineHAVE_LRINTF
accordingly. - Set a default build type if none was specified.
- Build DLL name with SOVERSION by default on Windows.
- Fix inlined
lrintf()
function signatures.
FAAD2 2.11.0
[ Eugène Filin ]
- Fix incorrect variable initialization
[ Eugene Kliuchnikov ]
-
CI/CD, build, etc
- setup GitHub workflows; test build under MSVC, OSX, MSYS2, Linux
- add CMake build system
- additionally add Bazel build
- remove automake and MSVC project files
- add fuzzers that cover almost all decoder code
- setup fuzzing for various builds: (no-)FIXED_POINT / (no-)DRM
- remove dead code
- address differes compilers warnings
- move version to distingished place that different build systems can read
-
"Safe" bugs
"Safe" means that it is unlikely to be exploited; those affect the decoded
result for (most likely) extreme inputs. Some fixes are useful only for
"FIXED_POINT" build, since it has more restrictions on intermediate values.- "negative range" in estimate_current_envelope
- integer overflow in channel downmixing
- integer overflow in estimate_envelope
- integer overflows caused by "practical infinite" gain
- integer overflows in HF adjustment code
- several "left shift of negative value"
- priming RNG to avoid using values that does not look random at all
- do not drop the first frame of output; other decoders don't do this
- touching uninitialized values in lt_update_state
- touching uninitialized values in bit-reader buffers
-
"Almost Safe" bugs
"Almost safe" means that those are unlinkly to be exploited; if those surface
depends on build options / environment.- division by zero in HF (noise?) generator and scale factor adjustment
- division by zero gen_rand_vector
-
"Unsafe" bugs
"Unsafe" means that those can cause crash, or could somehow else be exploited.
- CLI: accessing unallocated memory in mp4info (corrupted / zero-samples input) (CVE-2023-38857)
- CLI: out-of-bounds when parsing mp4 header
- CLI: crash because of wrong mp4 frame offset calculation (CVE-2023-38857)
- error handling rvlc_decode_scale_factors (CPU bomb?)
- null pointer dereference (in DRM + PS build)
- index-out-of-bounds / stack-buffer-overflow in decode_sce_lfe
(for streams with PCE) - stack-buffer-overflow in pns_decode
- null pointer derefernce (when channels change their type in the middle
of the stream) - infinite loop on currupted stream
- add practial limits for scale factors; otherwise calculated NaN/Inf values
could confuse further logic, resulting in access-out-of-bounds - check sf_index in window_grouping_info to avoid access-out-of-bounds
- clamp bs_pointer values to avoid access-out-of-bounds
- infinite loop in fill_element
- sanitize input values in ps_mix_phase to avoid access-out-of-bounds
- fix internal decoder buffer size calculation to avoid heap-out-of-bounds
- calculate channel length multiplier even if main channel is already allocated
to avoid heap-out-of-bounds - reserve enough slots for channels in decode_sce_lfe
to avoid heap-out-of-bounds
[ David Korczynski ]
- Fuzzing integration with oss-fuzz
[ Steveice10 ]
- Add define option to disable SBR/PS support
- Fix coefficient table selection in tns_decode_coef
FAAD2 2.10.1
[David Korczynski]
- Reject buffers of zero size.
[François Cartegnie]
- Fix 7.1 with PCE mapping.
- Have proper version string in
faad.h
. - Add conditional build with DRC.
FAAD2 2.10.0
[ tatsuz ]
- updated Visual Studio projects to VS 2019 (#54)
[ Fabian Greffrath ]
- mp4read.c: fix stack-buffer-overflow in stringin()/ftypin()
- fix heap-buffer-overflow in mp4read.c
[ Clayton Smith ]
- Remove non-ASCII characters
- Remove trailing whitespace
[ Andrew Wesie ]
- Check return value of ltp_data.
- Restrict SBR frame length to 960 and 1024 samples.
- Support object type 29.
- Support implicit SBR signaling in frontend.
- Fix PNS decoding when only right channel is noise.
- Initialize element_id array with an invalid id.
- Fix NULL pointer dereferences.
- Fix infinite loop in adts_parse.
- Fix infinite loop in huffman_getescape.
- Check for error after each channel decode.
- Check for inconsistent number of channels.
FAAD2 2.9.2
[ Michał Janiszewski ]
- Only use x86-assembly when explicitly on x86
- Use unsigned integers correctly
- Initialize pointers that might otherwise not be
[ Fabian Greffrath ]
- update README esp. WRT directory structure
[ Rosen Penev ]
[ Fabian Greffrath ]
- fix "inline function 'cfftf1' declared but never defined" compiler warning
- fix some inconsistencies in the frontend output
- mp4read_open: add check for failed frame buffer allocation
- stszin: add check for allocation error and integer overflow
- add a pkg-config file
[ Stefan Pöschel ]
- frontend: address compile warning + add missing LF (#50)
[ François Cartegnie ]
FAAD2 2.9.1
[ Fabian Greffrath ]
- Include stdio.h in libfaad/ps_dec.c for stderr (Michael Fink)
- Fix Tille -> Title typo in frontend/mp4read.c (Alexander Thomas)
FAAD2 2.9.0
[ Krzysztof Nikiel ]
- Build system fixes and code clean-up
[ LoRd_MuldeR ]
- Fix compiler warnings and code indentation
- Fix compilation with GCC <= 4.7.3
- MSVC solution file clean-up
[ Cameron Cawley ]
- Fix compilation with GCC 4.7.4
- Fix compilation with MinGW
[ Michael Fink ]
- MSVC 2017 project file update
[ Hugo Lefeuvre ]
- Fix crash with unsupported MP4 files (NULL pointer dereference,
division by zero) - CVE-2019-6956: ps_dec: sanitize iid_index before mixing
- CVE-2018-20196: sbr_fbt: sanitize sbr->M (should not exceed MAX_M)
- CVE-2018-20199, CVE-2018-20360: specrec: better handle unexpected
parametric stereo (PS) - CVE-2018-20362, CVE-2018-19504, CVE-2018-20195, CVE-2018-20198,
CVE-2018-20358: syntax.c: check for syntax element inconsistencies - CVE-2018-20194, CVE-2018-19503, CVE-2018-20197, CVE-2018-20357,
CVE-2018-20359, CVE-2018-20361: sbr_hfadj: sanitize frequency band
borders
[ Hugo Beauzée-Luyssen ]
- CVE-2019-15296, CVE-2018-19502: Fix a couple buffer overflows
[ Filip Roséen ]
- Prevent crash on SCE followed by CPE
[ Gianfranco Costamagna ]
- Fix linking with GCC 9 and "-Wl,--as-needed"
[ Fabian Greffrath ]
- Enable the frontend to be built reproducibly