Skip to content

[cpp-LIN-15] Default-constructed Frame defaults to Enhanced checksum, diverging from the spec's canonical default #43

Description

@SoundMatt

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions