From c256798220cfa9ca863eaae86e8aee4052712e8a Mon Sep 17 00:00:00 2001 From: Kelvin Zhang Date: Wed, 23 Feb 2022 08:49:09 -0800 Subject: [PATCH] Clear BCB if space allocation failed setupBcb() is called before allocating space, if space allocation failed, we should clearBcb() to properly release resources. Test: th Bug: 221001516 Change-Id: Idce67925503cf910ab226b193a4387c32225c0bb --- core/java/android/os/RecoverySystem.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/java/android/os/RecoverySystem.java b/core/java/android/os/RecoverySystem.java index 944b71700450f..a3b836adfc8b7 100644 --- a/core/java/android/os/RecoverySystem.java +++ b/core/java/android/os/RecoverySystem.java @@ -674,10 +674,12 @@ public class RecoverySystem { } try { if (!rs.allocateSpaceForUpdate(packageFile)) { + rs.clearBcb(); throw new IOException("Failed to allocate space for update " + packageFile.getAbsolutePath()); } } catch (RemoteException e) { + rs.clearBcb(); e.rethrowAsRuntimeException(); }