diff --git a/gatekeeperd/gatekeeperd.cpp b/gatekeeperd/gatekeeperd.cpp index b4fdab0c5..1cec0fa36 100644 --- a/gatekeeperd/gatekeeperd.cpp +++ b/gatekeeperd/gatekeeperd.cpp @@ -169,7 +169,14 @@ public: enrolled_password_handle, enrolled_password_handle_length); } - if (ret == 0) { + if (ret == GATEKEEPER_RESPONSE_OK && (*enrolled_password_handle == nullptr || + *enrolled_password_handle_length != sizeof(password_handle_t))) { + ret = GATEKEEPER_RESPONSE_ERROR; + ALOGE("HAL: password_handle=%p size_of_handle=%" PRIu32 "\n", + *enrolled_password_handle, *enrolled_password_handle_length); + } + + if (ret == GATEKEEPER_RESPONSE_OK) { gatekeeper::password_handle_t *handle = reinterpret_cast(*enrolled_password_handle); store_sid(uid, handle->user_id);