diff options
author | Janis Danisevskis <jdanis@google.com> | 2019-10-04 11:01:54 -0700 |
---|---|---|
committer | Janis Danisevskis <jdanis@google.com> | 2019-12-13 10:25:48 -0800 |
commit | 0a62361d9ffd460afcaa32d8550f357e9c1e0812 (patch) | |
tree | 4ca000fbdfe2ccaaaaae5ee0ed25fdd1b1dbdb69 | |
parent | 85735d8693cfee84989112263131f0d1cf0d3be4 (diff) | |
download | security-0a62361d9ffd460afcaa32d8550f357e9c1e0812.tar.gz |
Fix memory leak in keystore
The operation device map needs to be cleand up on finish regardless of
whether the operations succeeds of fails. The operation lifecycle ends
in any case.
Bug: 141317862
Test: Generate key and perform repeated operations.
Watch memory consumptoin not raise with using:
adb shell dumpsys meminfo keystore
Merged-In: I3a25aa67f121832640848a38398c523e20a2c6df
Change-Id: I3a25aa67f121832640848a38398c523e20a2c6df
-rw-r--r-- | keystore/key_store_service.cpp | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/keystore/key_store_service.cpp b/keystore/key_store_service.cpp index 7c42d0b6..2336e570 100644 --- a/keystore/key_store_service.cpp +++ b/keystore/key_store_service.cpp @@ -937,9 +937,7 @@ Status KeyStoreService::finish(const ::android::sp<IKeystoreOperationResultCallb dev->finish(token, params.getParameters(), {}, signature, entropy, [this, cb, token](OperationResult result_) { - if (!result_.resultCode.isOk()) { - mKeyStore->removeOperationDevice(token); - } + mKeyStore->removeOperationDevice(token); cb->onFinished(result_); }); |