From fc0b519374a67fec920def116bc7288116856b24 Mon Sep 17 00:00:00 2001 From: Paul Crowley Date: Mon, 2 Jul 2018 13:58:10 -0700 Subject: [PATCH] Use fdeCheckPassword error code to indicate pw failure Plumb through the error code from cryptfs_check_password to decryptStorage that was lost in the switch to Binder, so that a wrong password (+ve return value) is not treated like a bad state (-ve return value). Bug: 110976442 Test: Switch walleye fstab to FDE, and test wrong password by hand Change-Id: Ic2d58483a230ab4520e3a0e6af08d2fac5e8156f --- .../core/java/com/android/server/StorageManagerService.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java index 183be9b987506..6c2903f347218 100644 --- a/services/core/java/com/android/server/StorageManagerService.java +++ b/services/core/java/com/android/server/StorageManagerService.java @@ -81,6 +81,7 @@ import android.os.Process; import android.os.RemoteCallbackList; import android.os.RemoteException; import android.os.ServiceManager; +import android.os.ServiceSpecificException; import android.os.SystemClock; import android.os.SystemProperties; import android.os.UserHandle; @@ -2254,6 +2255,9 @@ class StorageManagerService extends IStorageManager.Stub } }, DateUtils.SECOND_IN_MILLIS); return 0; + } catch (ServiceSpecificException e) { + Slog.e(TAG, "fdeCheckPassword failed", e); + return e.errorCode; } catch (Exception e) { Slog.wtf(TAG, e); return StorageManager.ENCRYPTION_STATE_ERROR_UNKNOWN;