Clone extras Bundle when operating on it in onExtrasChanged

Currently, we do not make a copy of the extras Bundle when calling
Connection.setConnectionExtras. In rare cases, when multiple
setConnectionExtras events come in at the same time, they are posted
onto a concurrent Handler and the extras Bundle is cleared while being
copied in TelephonyConnection.updateExtras. This causes an
ArrayOutOfBoundsException and causes the Phone process to crash.

We now create a copy of the Bundle when we post it onto the concurrent
Handler to ensure that there is no simultaneous copy/clear operations
happening on the same extras Bundle.

Bug: 28957661
Change-Id: Icc8200b9a73c261acc6f2b94ace6284437e32e6e
1 file changed
tree: 2668ac831eb8340f2634eb7c3c9d0289226bdd40
  1. src/
  2. tests/
  3. tools/
  4. Android.mk
  5. CleanSpec.mk
  6. README.txt