From a9f3546276f69a93ccd97bb2719d9dd519be10be Mon Sep 17 00:00:00 2001 From: Paul Crowley Date: Mon, 3 Jun 2019 11:22:38 -0700 Subject: [PATCH] Create String before bundling AsyncTask We must create the string right away; if we wait then the binary array might be zeroed out. Bug: 133215398 Test: per bug, on Crosshatch modified to use FDE. Change-Id: I7681e5a474d5f32d9a7eb472cecbe6503621d0ef --- core/java/com/android/internal/widget/LockPatternUtils.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java index 07f8ee077c21d..dc45f78347485 100644 --- a/core/java/com/android/internal/widget/LockPatternUtils.java +++ b/core/java/com/android/internal/widget/LockPatternUtils.java @@ -886,13 +886,13 @@ public class LockPatternUtils { return; } + // TODO(b/120484642): This is a location where we still use a String for vold + String passwordString = password != null ? new String(password) : null; new AsyncTask() { @Override protected Void doInBackground(Void... dummy) { IStorageManager storageManager = IStorageManager.Stub.asInterface(service); try { - // TODO(b/120484642): This is a location where we still use a String for vold - String passwordString = password != null ? new String(password) : null; storageManager.changeEncryptionPassword(type, passwordString); } catch (RemoteException e) { Log.e(TAG, "Error changing encryption password", e);