summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoshan Pius <rpius@google.com>2017-09-20 15:44:11 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2017-09-20 15:44:11 +0000
commit63d98e08b8b8ed10e1b2969c221fe30ebef2f901 (patch)
tree65f12ae043c301be468019ef65e2d653e22bb2b1
parent78505bae4ce8d571d8543e9066d6f6a85ebefa95 (diff)
parent3bb0324fad43f043cac87e75ff353013ad543a33 (diff)
downloadsecurity-63d98e08b8b8ed10e1b2969c221fe30ebef2f901.tar.gz
Merge "key_store:Using euid instead of uid when upgrade wifi blobs"
-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 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;