diff options
| author | 2023-04-13 06:25:46 +0000 | |
|---|---|---|
| committer | 2023-04-13 06:25:46 +0000 | |
| commit | bc0f38ed9eba4b32583aa16ec2b315bf5be7c1e0 (patch) | |
| tree | 21ff3d444b3bb3daee51beba3329d108f9ada9c2 | |
| parent | 2a06f103c50dada2aea2901772c3f132ff55c8fd (diff) | |
| parent | 6216ab81c1d69699f6dcf76d59a4af646d10234e (diff) | |
Merge "Clear calling identity before calling to DeviceIdleController" am: 6216ab81c1
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2529739
Change-Id: Ib1088f8ca461506f558807e8c06b1ca1c09e55f1
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | services/core/java/com/android/server/connectivity/Vpn.java | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java index 7e48f68dcefc..0f17139e2678 100644 --- a/services/core/java/com/android/server/connectivity/Vpn.java +++ b/services/core/java/com/android/server/connectivity/Vpn.java @@ -969,15 +969,21 @@ public class Vpn { // Allow VpnManager app to temporarily run background services to handle this error. // If an app requires anything beyond this grace period, they MUST either declare // themselves as a foreground service, or schedule a job/workitem. - DeviceIdleInternal idleController = mDeps.getDeviceIdleInternal(); - idleController.addPowerSaveTempWhitelistApp(Process.myUid(), packageName, - VPN_MANAGER_EVENT_ALLOWLIST_DURATION_MS, mUserId, false, REASON_VPN, - "VpnManager event"); + final long token = Binder.clearCallingIdentity(); try { - return mUserIdContext.startService(intent) != null; - } catch (RuntimeException e) { - Log.e(TAG, "Service of VpnManager app " + intent + " failed to start", e); - return false; + final DeviceIdleInternal idleController = mDeps.getDeviceIdleInternal(); + idleController.addPowerSaveTempWhitelistApp(Process.myUid(), packageName, + VPN_MANAGER_EVENT_ALLOWLIST_DURATION_MS, mUserId, false, REASON_VPN, + "VpnManager event"); + + try { + return mUserIdContext.startService(intent) != null; + } catch (RuntimeException e) { + Log.e(TAG, "Service of VpnManager app " + intent + " failed to start", e); + return false; + } + } finally { + Binder.restoreCallingIdentity(token); } } |