diff --git a/common/hal_sdk/userauth_interface.cpp b/common/hal_sdk/userauth_interface.cpp index c2b5f208a28b9b5cf03e83a07bcaf2481cfa736b..03638b88b296b3d3e0c57e8340ceef32df0217f2 100644 --- a/common/hal_sdk/userauth_interface.cpp +++ b/common/hal_sdk/userauth_interface.cpp @@ -82,6 +82,7 @@ int32_t RequestAuthResult(uint64_t contextId, std::vector &scheduleToke } if (memcpy_s(&authToken, sizeof(UserAuthToken), &authTokenHal, sizeof(UserAuthTokenHal)) != EOK) { LOG_ERROR("copy authToken failed"); + free(scheduleIdsGet); DestoryBuffer(scheduleTokenBuffer); GlobalUnLock(); return RESULT_BAD_COPY; diff --git a/frameworks/kitsimpl/src/coauth_callback_proxy.cpp b/frameworks/kitsimpl/src/coauth_callback_proxy.cpp index 781795a8f6dcef3bf4295a90bdae69b41d221a05..b8ed085b50ced63ee6b2964149a93cca20fd9238 100644 --- a/frameworks/kitsimpl/src/coauth_callback_proxy.cpp +++ b/frameworks/kitsimpl/src/coauth_callback_proxy.cpp @@ -26,6 +26,10 @@ void CoAuthCallbackProxy::OnFinish(uint32_t resultCode, std::vector &sc MessageParcel data; MessageParcel reply; + if (!data.WriteInterfaceToken(CoAuthCallbackProxy::GetDescriptor())) { + COAUTH_HILOGE(MODULE_INNERKIT, "write descriptor failed!"); + return; + } if (!data.WriteUint32(resultCode)) { COAUTH_HILOGE(MODULE_INNERKIT, "failed to WriteUint32(resultCode)."); } @@ -43,6 +47,10 @@ void CoAuthCallbackProxy::OnFinish(uint32_t resultCode, std::vector &sc void CoAuthCallbackProxy::OnAcquireInfo(uint32_t acquire) { MessageParcel data; + if (!data.WriteInterfaceToken(CoAuthCallbackProxy::GetDescriptor())) { + COAUTH_HILOGE(MODULE_INNERKIT, "write descriptor failed!"); + return; + } if (!data.WriteUint32(acquire)) { COAUTH_HILOGE(MODULE_INNERKIT, "failed to WriteUint32(acquire)."); } diff --git a/frameworks/kitsimpl/src/coauth_callback_stub.cpp b/frameworks/kitsimpl/src/coauth_callback_stub.cpp index 787c1aff518a5796aa2124a8dc3d8eab22171bc8..ca66ac22a7f74a9c4b73d09468397f344933aa70 100644 --- a/frameworks/kitsimpl/src/coauth_callback_stub.cpp +++ b/frameworks/kitsimpl/src/coauth_callback_stub.cpp @@ -28,6 +28,12 @@ CoAuthCallbackStub::CoAuthCallbackStub(const std::shared_ptr& im int32_t CoAuthCallbackStub::OnRemoteRequest(uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) { + std::u16string descripter = CoAuthCallbackStub::GetDescriptor(); + std::u16string remoteDescripter = data.ReadInterfaceToken(); + if (descripter != remoteDescripter) { + COAUTH_HILOGD(MODULE_INNERKIT, "CoAuthStub::OnRemoteRequest failed, descriptor is not matched!"); + return FAIL; + } switch (code) { case static_cast(ICoAuthCallback::ONFINISH): return OnFinishStub(data, reply); diff --git a/frameworks/kitsimpl/src/query_callback_proxy.cpp b/frameworks/kitsimpl/src/query_callback_proxy.cpp index 6b9ce47ec522e568484dc159bf61fd8295481483..bcbc584ee064dfdfe92704bc786ebd83ae354fd6 100644 --- a/frameworks/kitsimpl/src/query_callback_proxy.cpp +++ b/frameworks/kitsimpl/src/query_callback_proxy.cpp @@ -23,8 +23,13 @@ namespace AuthResPool { void QueryCallbackProxy::OnResult(uint32_t resultCode) { MessageParcel data; + if (!data.WriteInterfaceToken(QueryCallbackProxy::GetDescriptor())) { + COAUTH_HILOGE(MODULE_INNERKIT, "write descriptor failed!"); + return; + } if (!data.WriteUint32(resultCode)) { COAUTH_HILOGE(MODULE_INNERKIT, "failed to WriteUint64(scheduleId)."); + return; } MessageParcel reply; bool ret = SendRequest(static_cast(IQueryCallback::COAUTH_QUERY_RESULT), data, reply); diff --git a/frameworks/kitsimpl/src/query_callback_stub.cpp b/frameworks/kitsimpl/src/query_callback_stub.cpp index fa8bb3d25276e451329ead16c435134eba48d6ea..9108ab592c5be6ccdc0bb9238498f83f7fb2ce05 100644 --- a/frameworks/kitsimpl/src/query_callback_stub.cpp +++ b/frameworks/kitsimpl/src/query_callback_stub.cpp @@ -28,6 +28,12 @@ QueryCallbackStub::QueryCallbackStub(const std::shared_ptr& impl) int32_t QueryCallbackStub::OnRemoteRequest(uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) { + std::u16string descripter = QueryCallbackStub::GetDescriptor(); + std::u16string remoteDescripter = data.ReadInterfaceToken(); + if (descripter != remoteDescripter) { + COAUTH_HILOGD(MODULE_INNERKIT, "CoAuthStub::OnRemoteRequest failed, descriptor is not matched!"); + return FAIL; + } switch (code) { case static_cast(IQueryCallback::COAUTH_QUERY_RESULT): return OnResultStub(data, reply); // call Stub diff --git a/frameworks/kitsimpl/src/set_prop_callback_proxy.cpp b/frameworks/kitsimpl/src/set_prop_callback_proxy.cpp index 5b34024a0b2589b37c9a4a7c81cd1c54e193d9f6..a717d7ccd477479610def773d182a1ee12dc7640 100644 --- a/frameworks/kitsimpl/src/set_prop_callback_proxy.cpp +++ b/frameworks/kitsimpl/src/set_prop_callback_proxy.cpp @@ -24,13 +24,18 @@ void SetPropCallbackProxy::OnResult(uint32_t result, std::vector &extra { MessageParcel data; MessageParcel reply; - + if (!data.WriteInterfaceToken(SetPropCallbackProxy::GetDescriptor())) { + COAUTH_HILOGE(MODULE_INNERKIT, "write descriptor failed!"); + return; + } if (!data.WriteUint32(result)) { COAUTH_HILOGE(MODULE_INNERKIT, "failed to WriteUint32(result)."); + return; } if (!data.WriteUInt8Vector(extraInfo)) { COAUTH_HILOGE(MODULE_INNERKIT, "fail to write WriteUInt8Vector extraInfo"); + return; } bool ret = SendRequest(static_cast(ISetPropCallback::ONRESULT), data, reply); diff --git a/frameworks/kitsimpl/src/set_prop_callback_stub.cpp b/frameworks/kitsimpl/src/set_prop_callback_stub.cpp index f614dd8bf6624bf0828136c92d19c26e5a9276de..25ac97a3a75a1b0c94771ee0d1202078313926fd 100644 --- a/frameworks/kitsimpl/src/set_prop_callback_stub.cpp +++ b/frameworks/kitsimpl/src/set_prop_callback_stub.cpp @@ -27,6 +27,12 @@ SetPropCallbackStub::SetPropCallbackStub(const std::shared_ptr& int32_t SetPropCallbackStub::OnRemoteRequest(uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) { + std::u16string descripter = SetPropCallbackStub::GetDescriptor(); + std::u16string remoteDescripter = data.ReadInterfaceToken(); + if (descripter != remoteDescripter) { + COAUTH_HILOGD(MODULE_INNERKIT, "CoAuthStub::OnRemoteRequest failed, descriptor is not matched!"); + return FAIL; + } switch (code) { case static_cast(ISetPropCallback::ONRESULT): return OnResultStub(data, reply);