From a9565cb48761461693f44cccb71ce32e31232606 Mon Sep 17 00:00:00 2001 From: Peter Visontay Date: Wed, 1 Nov 2017 18:44:01 +0000 Subject: [PATCH] In backup/restore code wrap Binder.restoreCallingIdentity() in finally{}. Test: none. Bug: 68755611 Change-Id: Ic4326f3b50060be117ca7556cde15b0db10cc239 --- .../backup/restore/ActiveRestoreSession.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/services/backup/java/com/android/server/backup/restore/ActiveRestoreSession.java b/services/backup/java/com/android/server/backup/restore/ActiveRestoreSession.java index 8d8a0135e3df9..a08c19e959147 100644 --- a/services/backup/java/com/android/server/backup/restore/ActiveRestoreSession.java +++ b/services/backup/java/com/android/server/backup/restore/ActiveRestoreSession.java @@ -158,16 +158,19 @@ public class ActiveRestoreSession extends IRestoreSession.Stub { MSG_RESTORE_SESSION_TIMEOUT); long oldId = Binder.clearCallingIdentity(); - backupManagerService.getWakelock().acquire(); - if (MORE_DEBUG) { - Slog.d(TAG, "restoreAll() kicking off"); + try { + backupManagerService.getWakelock().acquire(); + if (MORE_DEBUG) { + Slog.d(TAG, "restoreAll() kicking off"); + } + Message msg = backupManagerService.getBackupHandler().obtainMessage( + MSG_RUN_RESTORE); + msg.obj = new RestoreParams(mRestoreTransport, dirName, + observer, monitor, token); + backupManagerService.getBackupHandler().sendMessage(msg); + } finally { + Binder.restoreCallingIdentity(oldId); } - Message msg = backupManagerService.getBackupHandler().obtainMessage( - MSG_RUN_RESTORE); - msg.obj = new RestoreParams(mRestoreTransport, dirName, - observer, monitor, token); - backupManagerService.getBackupHandler().sendMessage(msg); - Binder.restoreCallingIdentity(oldId); return 0; } }