mirror of
https://github.com/freemkv/libfreemkv.git
synced 2026-10-07 18:13:10 +00:00
Security - Remove the unsafe Vec::set_len over recycled sector buffers — UB reachable from safe code (GHSA-j8ww-f5fg-9pmh, low). Uses Vec::resize; pooling unchanged. CI / tooling - clippy on stable with the MSRV single-sourced from Cargo.toml; cargo-deny dependency-audit gate with first-party git sources allowed (#15); audience-based comment-guard (#17). Docs - README (keydb ownership, BD-J parser count), drive-access transport/reset notes, mux timeline module-doc links.
15 lines
731 B
Markdown
15 lines
731 B
Markdown
# CRC helpers (`src/mux/codec/crc.rs`)
|
|
|
|
## `crc16_mlp` reversed byte order
|
|
|
|
MLP's checksum is the "reversed" scheme. `crc16_mlp` emits its two bytes in
|
|
the OPPOSITE order to a standard little-endian CRC readout, so the caller
|
|
swaps them back and compares against the stored trailer word read
|
|
LITTLE-endian — see `truehd::mlp_major_sync_crc_ok`, which is authoritative.
|
|
|
|
Comparing big-endian instead is precisely the bug that function was fixed
|
|
for: it could never validate a real extended major sync, so whole TrueHD
|
|
tracks were dropped silently. This comment used to prescribe exactly that,
|
|
and to point at a `truehd::mlp_major_sync_ok` that does not exist.
|
|
Verified against real MLP/TrueHD bitstreams (225/225 major-sync AUs).
|