Skip to content

IPC issues #1993

@bradjc

Description

@bradjc
  1. Right now the IPC allow() call can succeed, and a notify callback can be triggered, even if the expose_to() call fails. This may be fixed in 2.0 upgrades.
  2. client_notify() can be used to determine how many other processes are on the board. By iterating through service IDs the error return values leak which apps are present, even if the apps do not setup any IPC services.
  3. Calling client_notify() on a different process causes the callee's process to allocate the grant region, consuming application memory the original app didn't intend to.
  4. Currently, scheduling a notify callback may fail for a variety of reasons (callback queue is full, failure to allocate, calling process has died, etc and neither the caller nor the callee are made aware of the failure (see TODO in kernel/src/sched.rs)
  5. Buffers not power of two in length will cause silent failures on ARM.
  6. It seems to be the case that App A faulting does not reset the MPU configuration of app B, even if app A shared a buffer with app B. (I haven't verified this experimentally, just tried to read through the fault code -- Hudson)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Tracking

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions