Uploaded image for project: 'Embedded Software & Tools'
  1. Embedded Software & Tools
  2. EXT_EP-10680

IPC: RPMessage heap is sized wrong and is causing heap corruption of Rx messages

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: High High
    • PDK
    • PDK-10423
    • PROCESSOR_SDK_08.00.00
    • PROCESSOR_SDK_08.01.00
    • Hide
      am65xx-evm
      j721e-evm
      j7200-evm
      am65xx-idk
      Show
      am65xx-evm j721e-evm j7200-evm am65xx-idk

      The IPC RPMessage internal heap logic is hard-coded to deal with 512 bytes of buffers (which is the rpmsg vring transport buffer size) but this is not sufficiently sized to properly deal with 496 bytes of payload, the max data payload with rpmsg transport with enqueing of Rx messages.

      The RPMessage_enque function allocates from the same heap using the data payload (msg->dataLen) + sizeof(RPMessage_MsgElem). The RPMessage_MsgElem can either be of size 20 bytes (on 32-bit processors) or 28 bytes (on 64-bit processors), and this is larger than the rpmsg header itself which is just 16-bytes.

            syncuser TI User
            syncuser TI User
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: