Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit af8cb718 authored by Tyler Gunn's avatar Tyler Gunn
Browse files

Ensure ParcelableCall instances are deep copied for local binders.

There is now a permissions related InCallService running in the system
server.  We were seeing concurrent modification exceptions when creating
calls in that ICS.  This is due to the fact that the ICS running in the
system service does not parcel and unparcel the ParcelableCall that is
sent to the system service ICS (this is just how binders work).
As a result, the Call extras are passed by reference into the system
service ICS, which makes them subject to concurrent modification issues.

To fix this we ensure that if the destination binder is local we will
make a deep copy of the parcelable call and send that to avoid concurrency
issues.

Test: Manual testing to verify parcel/unparcel behavior.
Test: Run unit tests.
Flag: NONE bugfix.
Fixes: 405009580
Change-Id: If20ce4dee2b3528f4d4e0d7046ae375153d01bb5
parent 60f0b0cf
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment