Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: V1.2.0.1, V1.2.1.0, V1.2.2.0, V1.3.0.0
-
Fix Version/s: V1.2.0.2, V1.3.0.1, V1.3.1.0 (open)
-
Labels:None
-
Account:SPC Driver Ethernet (SPCDRIVERE)
Description
In case there is an ethernet frame received that holds the netX's MAC address as the source MAC address (frame from ourself),
a special interrupt is generated by the XC indicating to the ARM that a "circulating frame" has been received.
This interrupt is handled on the ARM side directly inside the circulating frame handler in the interrupt context.
This handler uses the memory function malloc() which can lead to a netX crash in case another context (task) also accesses
memory functions at the same time.
Receiving a frame from ourself in the real world is very unlikely. However, in a DLR environment it can still happen during ring state changes. Therefore, it is recommended to not use the affected versions in DLR environments.
By now, this issue could only be reproduced by Achilles Ethernet Grammer tests which generates Ethernet frames with varying combinations of valid and invalid source MAC addresses.