summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoshan Pius <rpius@google.com>2017-09-20 15:54:11 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-09-20 15:54:11 +0000
commitf5dd5d06740516229b565177cc337582fa5d39c7 (patch)
tree63846d355b9572e304099dc0f9e797775beb1e4c
parent098c340c821e9fdb3c24664cecf6618d0e5e99eb (diff)
parent706823962c6a37c8042aa2026f5e88cb696ee78d (diff)
downloadsecurity-f5dd5d06740516229b565177cc337582fa5d39c7.tar.gz
Merge "key_store:Using euid instead of uid when upgrade wifi blobs" am: 63d98e08b8 am: ff0f7e048a
am: 706823962c Change-Id: I67e8004d22d6462f8e246582693e63ae50cfe3f5
-rw-r--r--keystore/key_store_service.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/keystore/key_store_service.cpp b/keystore/key_store_service.cpp
index 310d8e2d..86d7e448 100644
--- a/keystore/key_store_service.cpp
+++ b/keystore/key_store_service.cpp
@@ -1895,6 +1895,13 @@ KeyStoreServiceReturnCode KeyStoreService::upgradeKeyBlob(const String16& name,
String8 filename(mKeyStore->getKeyNameForUidWithDir(name8, uid, ::TYPE_KEYMASTER_10));
error = mKeyStore->del(filename.string(), ::TYPE_ANY, get_user_id(uid));
+ if(error == ResponseCode::KEY_NOT_FOUND){
+ uid_t euid = get_keystore_euid(uid);
+ if ((euid != uid) && (euid == AID_WIFI)) {
+ filename=mKeyStore->getKeyNameForUidWithDir(name8, euid, ::TYPE_KEYMASTER_10);
+ error=mKeyStore->del(filename.string(), ::TYPE_ANY, get_user_id(euid));
+ }
+ }
if (!error.isOk()) {
ALOGI("upgradeKeyBlob keystore->del failed %d", (int)error);
return;