diff options
author | Roshan Pius <rpius@google.com> | 2017-09-20 15:54:11 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-09-20 15:54:11 +0000 |
commit | f5dd5d06740516229b565177cc337582fa5d39c7 (patch) | |
tree | 63846d355b9572e304099dc0f9e797775beb1e4c | |
parent | 098c340c821e9fdb3c24664cecf6618d0e5e99eb (diff) | |
parent | 706823962c6a37c8042aa2026f5e88cb696ee78d (diff) | |
download | security-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.cpp | 7 |
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; |