Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

generator/C: Don't parse messages outside CRC_EXTRA #990

Merged
merged 1 commit into from
Nov 13, 2024

Commits on Nov 13, 2024

  1. generator/C: Don't parse messages outside CRC_EXTRA

    I have been wondering for a while why I sometimes see MAVLink
    components "appear" with random sysid/compid when I leave a system
    running for some time.
    
    Today I finally caught the bytes of such a case, the offending bytes
    were:
    {253, 0, 1, 0, 0, 3, 1, 1, 42, 0, 185, 186,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    
    This is msgid 10753 from sysid 3, compid 1 with payload len 0.
    It's presumably signed, hence the trailing zeros.
    
    It turns out the msgid is way out of the CRC_EXTRA table and hence the
    mavlink_get_msg_entry(msgid) function returns NULL.
    In that case 0 is ignored and we carry on parsing.
    
    My suggestion is to reset parsing when we don't know the CRC_EXTRA of
    the message to avoid flagging noise as a valid message.
    
    Included fixup:
    In case a message is forwarded (even with unknown/bad CRC) we need to
    copy the first CRC byte.
    julianoes committed Nov 13, 2024
    Configuration menu
    Copy the full SHA
    2ab791b View commit details
    Browse the repository at this point in the history