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

replace dangerous dereference of reinterpret_cast with memcpy #934

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

ccaven
Copy link

@ccaven ccaven commented Feb 28, 2024

On Raspberry Pi Zero 2W, compiling in Release mode introduced an issue where trying to call vehicle->subscribe->getValue crashed the program on TOPIC_ALTITUDE_BAROMETER and TOPIC_ALTITUDE_FUSIONED.

These issues appeared to be caused by the dereference of a reinterpret_cast call, specifically when the destination type was float32_t. A safer approach would be to use memcpy to simply grab the bytes from the buffer and copy them into a new stack variable. The Telemetry messages are so small that a single copy will not produce any significant performance penalty.

If, for some reason, reinterpret_cast is necessary, I'd love to know why that is and how I can get around the program crash when compiling with optimization.

Removes dangerous deference of reinterpret_cast
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