Skip to content

Comments

fix(advert): validate parser input lengths before decoding fields#1816

Open
robekl wants to merge 1 commit intomeshcore-dev:devfrom
robekl:fix/advertdataparser-input-bounds-clean
Open

fix(advert): validate parser input lengths before decoding fields#1816
robekl wants to merge 1 commit intomeshcore-dev:devfrom
robekl:fix/advertdataparser-input-bounds-clean

Conversation

@robekl
Copy link

@robekl robekl commented Feb 24, 2026

Summary

Prevents buffer overreads in advertisement decoding by validating packet length before optional field reads.

Bug

Advert parsing logic could read optional fields without confirming sufficient remaining bytes, especially for truncated payloads.

Trigger

Feed truncated or malformed advertisement payloads where declared/expected fields are incomplete.

Impact

  • Stack/global buffer overread risk
  • Parser instability on malformed radio input
  • Potential crash/hard fault and invalid decoded metadata

Fix

Added defensive input-length checks before each optional read and capped name-copy length to available buffer capacity.

Guard AdvertDataParser against truncated payloads and null/empty buffers before reading optional lat/lon and feature sections.

Also cap copied name length to leave room for null termination.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant