diff --git a/libwvdrmengine/mediadrm/src_hidl/WVDrmPlugin.cpp b/libwvdrmengine/mediadrm/src_hidl/WVDrmPlugin.cpp index 1ef9916b..c1ddb155 100644 --- a/libwvdrmengine/mediadrm/src_hidl/WVDrmPlugin.cpp +++ b/libwvdrmengine/mediadrm/src_hidl/WVDrmPlugin.cpp @@ -1787,27 +1787,35 @@ Return WVDrmPlugin::sendEvent( EventType eventType, const hidl_vec& sessionId, const hidl_vec& data) { + Return err{}; if (mListenerV1_2 != NULL) { - mListenerV1_2->sendEvent(eventType, sessionId, data); + err = mListenerV1_2->sendEvent(eventType, sessionId, data); } else if (mListener != NULL) { - mListener->sendEvent(eventType, sessionId, data); + err = mListener->sendEvent(eventType, sessionId, data); } else { ALOGE("Null event listener, event not sent"); } - return Void(); + if (!err.isOk()) { + ALOGW("sendEvent failed %s", err.description().c_str()); + } + return err; } Return WVDrmPlugin::sendExpirationUpdate( const hidl_vec& sessionId, int64_t expiryTimeInMS) { + Return err{}; if (mListenerV1_2 != NULL) { - mListenerV1_2->sendExpirationUpdate(sessionId, expiryTimeInMS); + err = mListenerV1_2->sendExpirationUpdate(sessionId, expiryTimeInMS); } else if (mListener != NULL) { - mListener->sendExpirationUpdate(sessionId, expiryTimeInMS); + err = mListener->sendExpirationUpdate(sessionId, expiryTimeInMS); } else { ALOGE("Null event listener, event not sent"); } - return Void(); + if (!err.isOk()) { + ALOGW("sendExpirationUpdate failed %s", err.description().c_str()); + } + return err; } template<> @@ -1815,7 +1823,10 @@ void WVDrmPlugin::_sendKeysChange( const hidl_vec& sessionId, const hidl_vec& keyStatusList, bool hasNewUsableKey) { - mListener->sendKeysChange(sessionId, keyStatusList, hasNewUsableKey); + auto err = mListener->sendKeysChange(sessionId, keyStatusList, hasNewUsableKey); + if (!err.isOk()) { + ALOGW("sendKeysChange failed %s", err.description().c_str()); + } } template<> @@ -1823,41 +1834,56 @@ void WVDrmPlugin::_sendKeysChange( const hidl_vec& sessionId, const hidl_vec& keyStatusList, bool hasNewUsableKey) { - mListenerV1_2->sendKeysChange_1_2(sessionId, keyStatusList, hasNewUsableKey); + auto err = mListenerV1_2->sendKeysChange_1_2(sessionId, keyStatusList, hasNewUsableKey); + if (!err.isOk()) { + ALOGW("sendKeysChange_1_2 failed %s", err.description().c_str()); + } } Return WVDrmPlugin::sendKeysChange( const hidl_vec& sessionId, const hidl_vec& keyStatusList, bool hasNewUsableKey) { + Return err{}; if (mListenerV1_2 != NULL) { - mListenerV1_2->sendKeysChange(sessionId, keyStatusList, hasNewUsableKey); + err = mListenerV1_2->sendKeysChange(sessionId, keyStatusList, hasNewUsableKey); } else if (mListener != NULL) { - mListener->sendKeysChange(sessionId, keyStatusList, hasNewUsableKey); + err = mListener->sendKeysChange(sessionId, keyStatusList, hasNewUsableKey); } else { ALOGE("Null event listener, event not sent"); } - return Void(); + if (!err.isOk()) { + ALOGW("sendKeysChange failed %s", err.description().c_str()); + } + return err; } Return WVDrmPlugin::sendKeysChange_1_2( const hidl_vec& sessionId, const hidl_vec& keyStatusList, bool hasNewUsableKey) { + Return err{}; if (mListenerV1_2 != NULL) { - mListenerV1_2->sendKeysChange_1_2(sessionId, keyStatusList, hasNewUsableKey); + err = mListenerV1_2->sendKeysChange_1_2(sessionId, keyStatusList, hasNewUsableKey); } else { ALOGE("Null event listener, event not sent"); } - return Void(); + if (!err.isOk()) { + ALOGW("sendKeysChange_1_2 failed %s", err.description().c_str()); + } + return err; } Return WVDrmPlugin::sendSessionLostState( const hidl_vec& sessionId) { + Return err{}; if (mListenerV1_2 != NULL) { - mListenerV1_2->sendSessionLostState(sessionId); + err = mListenerV1_2->sendSessionLostState(sessionId); } else { ALOGE("Null event listener, event not sent"); } - return Void(); + if (!err.isOk()) { + ALOGW("sendSessionLostState failed %s", err.description().c_str()); + } + return err; } void WVDrmPlugin::OnSessionRenewalNeeded(const CdmSessionId& cdmSessionId) { diff --git a/libwvdrmengine/oemcrypto/odk/test/odk_test.cpp b/libwvdrmengine/oemcrypto/odk/test/odk_test.cpp index 1da4cc88..b5c85650 100644 --- a/libwvdrmengine/oemcrypto/odk/test/odk_test.cpp +++ b/libwvdrmengine/oemcrypto/odk/test/odk_test.cpp @@ -70,12 +70,12 @@ void ValidateRequest(uint32_t message_type, // non-empty buf, expect core message length to be set correctly, and buf is // filled with ODK_Field values appropriately - uint8_t* buf = new uint8_t[message_size]; + uint8_t* buf = new uint8_t[message_size]{}; EXPECT_EQ(OEMCrypto_SUCCESS, odk_prepare_func(buf, &core_message_length, &nonce_values)); EXPECT_EQ(core_message_length, message_size); - uint8_t* buf_expected = new uint8_t[message_size]; + uint8_t* buf_expected = new uint8_t[message_size]{}; size_t buf_len_expected = 0; EXPECT_EQ(OEMCrypto_SUCCESS, ODK_IterFields(ODK_WRITE, buf_expected, SIZE_MAX, &buf_len_expected, total_fields)); @@ -94,7 +94,7 @@ void ValidateRequest(uint32_t message_type, nonce_values.api_major_version = t.api_major_version; nonce_values.nonce = t.nonce; nonce_values.session_id = t.session_id; - uint8_t* buf2 = new uint8_t[message_size]; + uint8_t* buf2 = new uint8_t[message_size]{}; EXPECT_EQ(OEMCrypto_SUCCESS, odk_prepare_func(buf2, &core_message_length, &nonce_values)); EXPECT_EQ(core_message_length, message_size); @@ -126,7 +126,7 @@ void ValidateResponse(ODK_CoreMessage* core_message, uint32_t buf_size = 0; ODK_BuildMessageBuffer(core_message, extra_fields, &buf, &buf_size); - uint8_t* zero = new uint8_t[buf_size]; + uint8_t* zero = new uint8_t[buf_size]{}; size_t bytes_read = 0; // zero-out input EXPECT_EQ(OEMCrypto_SUCCESS, ODK_IterFields(ODK_READ, zero, buf_size, @@ -185,13 +185,13 @@ TEST(OdkTest, SerializeFieldsStress) { total_size += ODK_FieldLength(fields[i].type); } - uint8_t* buf = new uint8_t[total_size]; + uint8_t* buf = new uint8_t[total_size]{}; for (int i = 0; i < total_size; i++) { buf[i] = std::rand() & 0xff; } size_t bytes_read = 0, bytes_written = 0; - uint8_t* buf2 = new uint8_t[total_size]; + uint8_t* buf2 = new uint8_t[total_size]{}; ODK_IterFields(ODK_READ, buf, total_size, &bytes_read, fields); EXPECT_EQ(bytes_read, total_size); ODK_IterFields(ODK_WRITE, buf2, total_size, &bytes_written, fields); diff --git a/libwvdrmengine/oemcrypto/odk/test/odk_test_helper.cpp b/libwvdrmengine/oemcrypto/odk/test/odk_test_helper.cpp index fd240648..167d9e59 100644 --- a/libwvdrmengine/oemcrypto/odk/test/odk_test_helper.cpp +++ b/libwvdrmengine/oemcrypto/odk/test/odk_test_helper.cpp @@ -477,7 +477,7 @@ void ODK_BuildMessageBuffer(ODK_CoreMessage* core_message, // update message_size *(reinterpret_cast(total_fields[1].value)) = *buf_size; - *buf = new uint8_t[*buf_size]; + *buf = new uint8_t[*buf_size]{}; size_t bytes_written = 0; // serialize ODK fields to message buffer EXPECT_EQ(OEMCrypto_SUCCESS, ODK_IterFields(ODK_WRITE, *buf, SIZE_MAX,