Location: include/lin/lin.hpp (struct Frame, ~line 56)
Finding: The Frame struct's checksum_type member defaults to Enhanced. The RELAY spec's canonical C++ LIN frame definition defaults this field to Classic, matching the zero-value convention used by the other language bindings (e.g. the Go canonical type's zero value is the classic checksum). A default- or partially-constructed Frame in this codebase therefore silently diverges from every other language binding for the same struct, which could flip which checksum family gets used for a frame the caller only partially populated.
Recommendation: Default checksum_type to Classic to match the spec's canonical type and the enum's zero value, or explicitly document the deviation if it's intentional.
Filed from the 2026-07-29 ecosystem audit register; independently re-verified against current HEAD before filing.
Location:
include/lin/lin.hpp(struct Frame, ~line 56)Finding: The
Framestruct'schecksum_typemember defaults to Enhanced. The RELAY spec's canonical C++ LIN frame definition defaults this field to Classic, matching the zero-value convention used by the other language bindings (e.g. the Go canonical type's zero value is the classic checksum). A default- or partially-constructedFramein this codebase therefore silently diverges from every other language binding for the same struct, which could flip which checksum family gets used for a frame the caller only partially populated.Recommendation: Default
checksum_typeto Classic to match the spec's canonical type and the enum's zero value, or explicitly document the deviation if it's intentional.Filed from the 2026-07-29 ecosystem audit register; independently re-verified against current HEAD before filing.