@@ -5,7 +5,7 @@ All notable changes to TagLibSharp2 will be documented in this file.
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.1.0/ ) ,
66and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
8- ## [ 0.3.0] - 2025-12-29
8+ ## [ 0.3.0] - 2025-12-30
99
1010### Added
1111
@@ -51,6 +51,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
5151- Replace C# 12 collection expressions ` [] ` with explicit ` new List<T>() `
5252- Fix ` #if NET8_0_OR_GREATER ` to ` #if NET5_0_OR_GREATER ` for CollectionsMarshal
5353
54+ #### R128 Gain Handling
55+ - Fix integer overflow in ` R128TrackGainDb ` and ` R128AlbumGainDb ` setters for extreme values
56+ - Add ` ClampToQ78 ` helper to safely clamp dB values to Q7.8 format range (-128 to +127.99 dB)
57+
58+ #### Vorbis Validation
59+ - Add validation for invalid ` vorbis_version ` in identification header (must be 0 per spec)
60+ - Return explicit error for Vorbis files with zero sample rate or channel count
61+
62+ #### Security Hardening
63+ - Add 16 MB max packet size limit in ` OggPageHelper.ExtractHeaderPackets ` to prevent DoS
64+ - Add stream/coupled count validation for Opus mapping families 1 & 255 per RFC 7845 §5.1.1.2
65+
5466### Changed
5567- ** Refactor** : ` OggVorbisFile ` now uses shared ` OggPageHelper ` code
5668 - Eliminates ~ 160 lines of duplicate code
@@ -59,7 +71,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
5971- Add ` SaveToFileAsync ` convenience overloads to ` OggVorbisFile `
6072- Change ` OggPageWithSegmentsResult.Segments ` to ` IReadOnlyList<T> ` for encapsulation
6173- Standardize magic bytes to char cast syntax for readability
62- - Test count increased from 1939 to 2057 (+118 tests)
74+ - Test count increased from 1939 to 2077 (+138 tests)
6375
6476## [ 0.2.1] - 2025-12-29
6577
0 commit comments