Use SoftKeymasterDevice::keymaster_device rather than casting.
Also document that SoftKeymasterDevice should not be freed.
Change-Id: I027f137b0ffd474bb4b429691fe87eef6338b723
diff --git a/keystore/keystore.cpp b/keystore/keystore.cpp
index b0f2337..52f764e 100644
--- a/keystore/keystore.cpp
+++ b/keystore/keystore.cpp
@@ -132,8 +132,8 @@
static int fallback_keymaster_device_initialize(keymaster1_device_t** dev) {
keymaster::SoftKeymasterDevice* softkeymaster =
new keymaster::SoftKeymasterDevice();
- // SoftKeymasterDevice is designed to make this cast safe.
- *dev = reinterpret_cast<keymaster1_device_t*>(softkeymaster);
+ *dev = softkeymaster->keymaster_device();
+ // softkeymaster will be freed by *dev->close_device; don't delete here.
return 0;
}