drivers/sensors: update upper->parsebuffer every new line #17769
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fix GNSS NMEA parser buffer overflow handling by resetting parse position after error.
When the NMEA parser detects a buffer overflow (line exceeds GNSS_PARSE_BUFFERSIZE), it logs an error message but fails to reset parsenext to 0. This causes subsequent NMEA sentences to be appended to the corrupted buffer, leading to:
Continuous buffer overflow errors for all following sentences
Loss of valid GNSS data until the next '$' character is encountered
Potential memory corruption if overflow detection fails
Impact
Improves GNSS data reliability when receiving malformed or oversized NMEA sentences
Prevents data loss from cascading parse errors
No API or behavior changes for normal operation
Testing
before fix:
after fix: