From 0b39e24e58f3914d8447f7b8e6704859f171f300 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B9=BE=E9=98=B3=E7=86=A0?= Date: Fri, 12 Sep 2025 10:35:11 +0800 Subject: [PATCH] Signed-off-by: qianyangyi --- .../addremotewatcher_fuzzer.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/test/fuzztest/addremotewatcher_fuzzer/addremotewatcher_fuzzer.cpp b/test/fuzztest/addremotewatcher_fuzzer/addremotewatcher_fuzzer.cpp index dfbb6a330..9363d25ec 100644 --- a/test/fuzztest/addremotewatcher_fuzzer/addremotewatcher_fuzzer.cpp +++ b/test/fuzztest/addremotewatcher_fuzzer/addremotewatcher_fuzzer.cpp @@ -22,6 +22,8 @@ #define protected public #include "watcher_manager.h" #undef protected +#include +static const int SLEEP_TIME = 100000; using namespace OHOS::init_param; class FuzzWatcher final : public Watcher { @@ -36,16 +38,22 @@ public: namespace OHOS { bool FuzzAddRemoteWatcher(const uint8_t* data, size_t size) { + if (size < sizeof(uint32_t)) { + return false; + } + uint32_t id = 0; + if (memcpy_s(&id, sizeof(uint32_t), data, sizeof(uint32_t)) != 0) { + id = 0; + } bool result = false; sptr watcher = new FuzzWatcher(); std::unique_ptr watcherManager = std::make_unique(0, true); - uint32_t id = static_cast(*data); uint32_t watcherId = 0; - watcherManager->OnStart(); if (!watcherManager->AddRemoteWatcher(id, watcherId, watcher)) { result = true; watcherManager->DelRemoteWatcher(watcherId); }; + usleep(SLEEP_TIME); return result; } } -- Gitee