Read everything and return NULL in SurfaceControl.
We used to early return when we got an invalid SurfaceControl for any reason, but that'll mess up the Parcel location and make all following reading from this Parcel fail in a very obscure way. To avoid that let's read up everything SurfaceControl wrote and return NULL if it indeed is invalid. Also change to call readStrongBinder() that can return status_t, and check all status_t returned by readStrongBinder() and readNullableStrongBinder() to catch all cases. Note this issue came to ARC++ because our ArcSystemUI crashed earlier, which is the root cause to the invalid SurfaceControl. Therefore this change doesn't aim to fix any issue in normal code path. Bug: 159627603 Test: atest ActivityVisibilityTests#testTurnScreenOnSingleTask failed with using invalid SurfaceControl rather than ClassNotFoundException. Change-Id: Icd2f694f2696458041f449f74186653791236010
Loading
Please register or sign in to comment