diff --git a/ipc/native/src/core/source/ipc_process_skeleton.cpp b/ipc/native/src/core/source/ipc_process_skeleton.cpp index 8a39fdcb07a5fa4152e3c1b05deaee33ce68e24c..8eef4ff8004b239099821ff19a8159ce01f3a52b 100644 --- a/ipc/native/src/core/source/ipc_process_skeleton.cpp +++ b/ipc/native/src/core/source/ipc_process_skeleton.cpp @@ -659,10 +659,10 @@ void IPCProcessSkeleton::AddDataThreadInWait(const std::thread::id &threadId) uint64_t IPCProcessSkeleton::GetSeqNumber() { std::lock_guard lockGuard(seqNumberMutex_); - seqNumber_++; // can be overflow, and seqNumber do not use 0 - if (seqNumber_ == 0) { - seqNumber_++; + if (seqNumber_ == std::numeric_limits::max()) { + seqNumber_ = 0; } + seqNumber_++; return seqNumber_; } diff --git a/services/dbinder/dbinder_service/src/dbinder_service.cpp b/services/dbinder/dbinder_service/src/dbinder_service.cpp index 14b84fd9b0d24135e4a3d90544dc86b4ea3189c4..c89119e183da0e932018304f24df361303a4ee4c 100644 --- a/services/dbinder/dbinder_service/src/dbinder_service.cpp +++ b/services/dbinder/dbinder_service/src/dbinder_service.cpp @@ -162,7 +162,10 @@ sptr DBinderService::GetInstance() uint32_t DBinderService::GetSeqNumber() { std::lock_guard lockGuard(instanceMutex_); - seqNumber_++; // can be overflow + if (seqNumber_ == std::numeric_limits::max()) { + seqNumber_ = 0; + } + seqNumber_++; return seqNumber_; }