diff options
| author | 2024-11-30 16:14:08 +0000 | |
|---|---|---|
| committer | 2024-12-04 17:19:03 +0000 | |
| commit | ae56df41e6e1d03c214f8aecf3a7e436b418251f (patch) | |
| tree | c3a9b25334a3b95c6513916f8374f17ccf2fd3c7 /api/api.go | |
| parent | beed0e8077e95a4444bc244f08b28ba26e3f0aa3 (diff) | |
Fix collectExtraIntentKeys for nested LazyValue who is of custom class
collectExtraIntentKeys calls BaseBundle.get(key) method to try to
find out if the intent contains extra intent. But if the Bundle
contains a LazyValue of custom class, and the bundle's classLoader
is not PathClassLoader (points to the custom class's path), then
it would fail - a BadParcelableException would throw.
ActivityThread only sets the intent's mExtra's classLoader
correctly. This leaves nested intents (1+ levels deep) with default
bootClassLoader. This could also happen if the bundle comes from
other IPC methods (not as a starting intent's extra bundle).
This CL fixed this issue by handling The BadParcelableException. This skips collectExtraIntentKeys method for custom and nested class objects. See go/prevent-intent-redirect-customclass for details.
Bug: 375969761
Test: Manual
Flag: android.security.prevent_intent_redirect
Change-Id: I8a1ad2030e28e4e69740d97cbd1366a874f3a2fc
Diffstat (limited to 'api/api.go')
0 files changed, 0 insertions, 0 deletions