You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
RIOT-OS is packaging this repo downstream. I just opened a PR to fix a memory corruption bug downstream that still seems to be present here.
The issue is relatively trivial: The C standard doesn't say which size an enum has, only that it needs to be large enough to hold all constants defined in that enum. So sizeof(enum QoS) == sizeof(int) - as assumed in this library - is not generally correct. Casting a pointer to enum QoS to int * and passing this to a function that accesses this int * could e.g. result in a 32 bit memory access of an 8 bit value.
This issue might be something you want to fix soonish.
The text was updated successfully, but these errors were encountered:
RIOT-OS is packaging this repo downstream. I just opened a PR to fix a memory corruption bug downstream that still seems to be present here.
The issue is relatively trivial: The C standard doesn't say which size an
enum
has, only that it needs to be large enough to hold all constants defined in thatenum
. Sosizeof(enum QoS) == sizeof(int)
- as assumed in this library - is not generally correct. Casting a pointer toenum QoS
toint *
and passing this to a function that accesses thisint *
could e.g. result in a 32 bit memory access of an 8 bit value.This issue might be something you want to fix soonish.
The text was updated successfully, but these errors were encountered: