From 15a93c6460cfd1abda36e7a295155caed5389934 Mon Sep 17 00:00:00 2001 From: liqiao49 Date: Sat, 15 Jul 2023 11:04:25 +0800 Subject: [PATCH] fix safuzz test crash Signed-off-by: liqiao49 --- interfaces/ipc/include/distributed_input_source_stub.h | 3 +++ interfaces/ipc/src/distributed_input_source_stub.cpp | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/interfaces/ipc/include/distributed_input_source_stub.h b/interfaces/ipc/include/distributed_input_source_stub.h index 2690ce8..75484f0 100644 --- a/interfaces/ipc/include/distributed_input_source_stub.h +++ b/interfaces/ipc/include/distributed_input_source_stub.h @@ -19,6 +19,7 @@ #include "i_distributed_source_input.h" #include +#include #include "iremote_stub.h" @@ -57,6 +58,8 @@ private: int32_t HandleRegisterSimulationEventListener(MessageParcel &data, MessageParcel &reply); int32_t HandleUnregisterSimulationEventListener(MessageParcel &data, MessageParcel &reply); DISALLOW_COPY_AND_MOVE(DistributedInputSourceStub); +private: + std::atomic sourceInitFlag_ {false}; }; } // namespace DistributedInput } // namespace DistributedHardware diff --git a/interfaces/ipc/src/distributed_input_source_stub.cpp b/interfaces/ipc/src/distributed_input_source_stub.cpp index 6475bca..7a830ef 100644 --- a/interfaces/ipc/src/distributed_input_source_stub.cpp +++ b/interfaces/ipc/src/distributed_input_source_stub.cpp @@ -31,11 +31,16 @@ DistributedInputSourceStub::~DistributedInputSourceStub() int32_t DistributedInputSourceStub::HandleInitDistributedHardware(MessageParcel &reply) { + if (sourceInitFlag_.load()) { + DHLOGE("DistributedInputSourceStub already init."); + return DH_SUCCESS; + } int32_t ret = Init(); if (!reply.WriteInt32(ret)) { DHLOGE("DistributedInputSourceStub Init write ret failed"); return ERR_DH_INPUT_IPC_WRITE_TOKEN_VALID_FAIL; } + sourceInitFlag_.store(true); return DH_SUCCESS; }