From 5ffaea94944c7f3cb5977b5be59d8cc86b85d3ab Mon Sep 17 00:00:00 2001 From: Alice Kuo Date: Wed, 2 Jun 2021 10:34:56 +0800 Subject: [PATCH] Use finally block for Binder.restoreCallingIdentity 1. Use final for Binder.clearCallingIdentity() to protect not being overwritten. 2. Protect it in the finally block of the try statement to avoid missing restore the CallingIdentity as exception. Bug: 189819183 Test: Manual test Ignore-AOSP-First: prevent merge conflict Change-Id: I2dd4cfc1aacecb0b77fa4c82b48b24b284271779 --- .../java/com/android/server/BluetoothManagerService.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/BluetoothManagerService.java b/services/core/java/com/android/server/BluetoothManagerService.java index 85ff2be43be46..b4912bbc898d2 100644 --- a/services/core/java/com/android/server/BluetoothManagerService.java +++ b/services/core/java/com/android/server/BluetoothManagerService.java @@ -614,8 +614,12 @@ class BluetoothManagerService extends IBluetoothManager.Stub { } // waive WRITE_SECURE_SETTINGS permission check final long callingIdentity = Binder.clearCallingIdentity(); - Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.BLUETOOTH_ON, value); - Binder.restoreCallingIdentity(callingIdentity); + try { + Settings.Global.putInt(mContext.getContentResolver(), + Settings.Global.BLUETOOTH_ON, value); + } finally { + Binder.restoreCallingIdentity(callingIdentity); + } } /**