diff options
| author | 2023-02-23 22:46:41 +0100 | |
|---|---|---|
| committer | 2023-03-07 14:17:37 +0000 | |
| commit | 8ed3e4a826356b5e93008653d310844ea9d4d8e5 (patch) | |
| tree | 31fa8e8d7895f9c65260b6d4ce744bc702b42f39 /libs/androidfw/ZipUtils.cpp | |
| parent | 9b7e8c61911780b2de7d99751d28cbfdd381fed6 (diff) | |
Accept a Window as shown if it's in any transition
Previously, a malicious or confused app can DoS all other apps with
unshown surfaces by kicking off at least one new transition every
frame.
For example (see linked bug), an app in a busy-loop trying to request
permissions can prevent the launcher from showing Recents.
The significant change here is that when we see that there is a
transition set, we only block on mToken.waitingToShow if mToken
is not already part of another transition. Otherwise, there can
be a new transition generated every frame and the token is constantly
stuck waiting to show.
Test: atest CtsWindowManagerDeviceTestCases
Bug: 269108443
Fix: 271085429
Change-Id: I47ce9fdf5429795cbf083516c19b669bc407d1da
(cherry picked from commit on googleplex-android-review.googlesource.com host: d98e95c7c8892e45ca018b7c7227e3b658763df1)
Merged-In: I47ce9fdf5429795cbf083516c19b669bc407d1da
Diffstat (limited to 'libs/androidfw/ZipUtils.cpp')
0 files changed, 0 insertions, 0 deletions