summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-11-29 02:11:38 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2022-11-29 02:11:38 +0000
commitd51037224d0f4659b3f80f6930552d486cd008c7 (patch)
treeb27df1296547e36702aa47185b488278dd4168cc
parent29497da074fb0a45bf4b7340749a41d335c165fd (diff)
parentceac677e415b15e0febbbe5af6e394f56e870500 (diff)
downloadvold-main-16k.tar.gz
Merge "Merge "Ignore DE retrieveKey failure for non-user-0" am: 1cb65f9de5" into main-16kmain-16k
-rw-r--r--FsCrypt.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/FsCrypt.cpp b/FsCrypt.cpp
index 5bc55d0b..f871a32c 100644
--- a/FsCrypt.cpp
+++ b/FsCrypt.cpp
@@ -417,7 +417,11 @@ static bool load_all_de_keys() {
userid_t user_id = std::stoi(entry->d_name);
auto key_path = de_dir + "/" + entry->d_name;
KeyBuffer de_key;
- if (!retrieveKey(key_path, kEmptyAuthentication, &de_key)) return false;
+ if (!retrieveKey(key_path, kEmptyAuthentication, &de_key)) {
+ // This is probably a partially removed user, so ignore
+ if (user_id != 0) continue;
+ return false;
+ }
EncryptionPolicy de_policy;
if (!install_storage_key(DATA_MNT_POINT, options, de_key, &de_policy)) return false;
auto ret = s_de_policies.insert({user_id, de_policy});