Uploaded image for project: 'Ethernet 2-Port Switch'
  1. Ethernet 2-Port Switch
  2. PSETH2PS-31

[DLR only] malloc() & free() in interrupt context when handling DLR beacon timeout event

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: V1.2.0.0, V1.3.0.0
    • Fix Version/s: V1.2.0.3, V1.3.0.3, V1.3.1.0 (open)
    • Labels:
      None
    • Account:
      SPC Driver Ethernet (SPCDRIVERE)

      Description

      HalEdd_2PS_GetBcnTimeoutFrameBuffer() and HalEdd_2PS_FreeDlrBuffer() is called by HalEdd_2PS_Isr_MSYNC() in interrupt context and in turn call malloc(), free() which lock a mutex.

      This can make the device become unresponsive (crash).

      The issue can occurr in a ring topology only. Therefore, only EtherNet/IP is affected.
      In general, the issue can show up when the DLR ring gets broken and the netX device detects a beacon timeout on one of its ports. The probability of this issue is also dependent on the other devices in the ring and their timing behavior realted to DLR events and messages.

        Attachments

          Issue Links

            Expenses

              Activity

                Status Description

                  People

                  • Reporter:
                    MBommert Marc Bommert
                  • Votes:
                    0 Vote for this issue
                    Watchers:
                    0 Start watching this issue

                    Dates

                    • Created:
                      Updated:
                      Resolved: