From b77c7d689e46f266dff9a3a7468671be776fbae4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9F=A9=E9=9C=87?= Date: Tue, 8 Mar 2022 16:00:12 +0800 Subject: [PATCH 1/2] fix interface secure MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 韩震 Change-Id: Ia744916a8ab43207db8a415e6ca087a411b3d7cc --- frameworks/kitsimpl/src/coauth_callback_proxy.cpp | 8 ++++++++ frameworks/kitsimpl/src/coauth_callback_stub.cpp | 6 ++++++ frameworks/kitsimpl/src/query_callback_proxy.cpp | 5 +++++ frameworks/kitsimpl/src/query_callback_stub.cpp | 6 ++++++ frameworks/kitsimpl/src/set_prop_callback_proxy.cpp | 7 ++++++- frameworks/kitsimpl/src/set_prop_callback_stub.cpp | 6 ++++++ 6 files changed, 37 insertions(+), 1 deletion(-) diff --git a/frameworks/kitsimpl/src/coauth_callback_proxy.cpp b/frameworks/kitsimpl/src/coauth_callback_proxy.cpp index 781795a..b8ed085 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 787c1af..ca66ac2 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 6b9ce47..bcbc584 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 fa8bb3d..9108ab5 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 5b34024..a717d7c 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 f614dd8..25ac97a 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); -- Gitee From d580d923f6b02f887c2b9bd7c03d81a929884ab1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9F=A9=E9=9C=87?= Date: Fri, 11 Mar 2022 10:35:38 +0800 Subject: [PATCH 2/2] fix free MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 韩震 Change-Id: I851787d4cc70d9613eab11417952391c7a932dad --- common/hal_sdk/userauth_interface.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/common/hal_sdk/userauth_interface.cpp b/common/hal_sdk/userauth_interface.cpp index c2b5f20..03638b8 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; -- Gitee