diff options
author | Roshan Pius <rpius@google.com> | 2017-09-20 15:44:11 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2017-09-20 15:44:11 +0000 |
commit | 63d98e08b8b8ed10e1b2969c221fe30ebef2f901 (patch) | |
tree | 65f12ae043c301be468019ef65e2d653e22bb2b1 | |
parent | 78505bae4ce8d571d8543e9066d6f6a85ebefa95 (diff) | |
parent | 3bb0324fad43f043cac87e75ff353013ad543a33 (diff) | |
download | security-63d98e08b8b8ed10e1b2969c221fe30ebef2f901.tar.gz |
Merge "key_store:Using euid instead of uid when upgrade wifi blobs"
-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 248fa00f..1f4d3854 100644 --- a/keystore/key_store_service.cpp +++ b/keystore/key_store_service.cpp @@ -1870,6 +1870,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; |