From 2705e7c7024e260df9954a849a6f08e0734e5ac0 Mon Sep 17 00:00:00 2001 From: yangli Date: Mon, 22 May 2023 17:49:27 +0800 Subject: [PATCH 1/8] =?UTF-8?q?fazz=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yangli --- .../dscreenmgr/onchange_fuzzer/BUILD.gn | 71 +++++++++++++++++++ .../dscreenmgr/onchange_fuzzer/corpus/init | 14 ++++ .../dscreenmgr/onchange_fuzzer/onchange.cpp | 47 ++++++++++++ .../onchange_fuzzer/onchange_fuzzer.h | 21 ++++++ .../dscreenmgr/onchange_fuzzer/project.xml | 25 +++++++ 5 files changed, 178 insertions(+) create mode 100644 services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn create mode 100644 services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/corpus/init create mode 100644 services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/onchange.cpp create mode 100644 services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/onchange_fuzzer.h create mode 100644 services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/project.xml diff --git a/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn new file mode 100644 index 00000000..beca0d92 --- /dev/null +++ b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn @@ -0,0 +1,71 @@ +# Copyright (c) 2023 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +#####################hydra-fuzz################### +import("//build/config/features.gni") +import("//build/test.gni") +import( + "//foundation/distributedhardware/distributed_screen/distributedscreen.gni") + +##############################fuzztest########################################## +ohos_fuzztest("OnChangeFuzzTest") { + module_out_path = "distributed_screen/sourceservice" + + fuzz_config_file = "${services_path}/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer" + + include_dirs = [ + "${distributedhardwarefwk_path}/interfaces/inner_kits/include", + "${fwk_common_path}/utils/include", + ] + + include_dirs += [ + "./dscreenservice/include/callback", + "${common_path}/include", + "${services_path}/screenservice/sourceservice/dscreenmgr/include", + "${interfaces_path}/innerkits/native_cpp/screen_sink/include", + "${interfaces_path}/innerkits/native_cpp/screen_sink/include/callback", + "${interfaces_path}/innerkits/native_cpp/screen_source/include", + "${interfaces_path}/innerkits/native_cpp/screen_source/include/callback", + "${services_path}/common/utils/include", + "${services_path}/screentransport/screensourcetrans/include", + ] + + cflags = [ + "-g", + "-O0", + "-Wno-unused-variable", + "-fno-omit-frame-pointer", + ] + + sources = [ "onchange_fuzzer.cpp" ] + + deps = [ "${services_path}/screenservice/sourceservice:distributed_screen_source" ] + + defines = [ + "HI_LOG_ENABLE", + "DH_LOG_TAG=\"OnChangeFuzzTest\"", + "LOG_DOMAIN=0xD004100", + ] + + external_deps = [ + "graphic_standard:surface", + "window_manager:libdm", + ] +} + +############################################################################### +group("fuzztest") { + testonly = true + deps = [ ":HandlerInitSinkFuzzTest" ] +} +############################################################################### diff --git a/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/corpus/init b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/corpus/init new file mode 100644 index 00000000..e4ceac1b --- /dev/null +++ b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/corpus/init @@ -0,0 +1,14 @@ +# Copyright (c) 2023 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +FUZZ \ No newline at end of file diff --git a/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/onchange.cpp b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/onchange.cpp new file mode 100644 index 00000000..65453afb --- /dev/null +++ b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/onchange.cpp @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "onchange_fuzzer.h" + +#include +#include + +#include "dscreen_manager.h" + +namespace OHOS { +namespace DistributedHardware { +void OnChangeFuzzTest(const uint8_t* data, size_t size) +{ + if ((data == nullptr) || (size < sizeof(uint64_t))) { + return; + } + std::vector screenIds; + uint64_t screenIdOne = *(reinterpret_cast(data)); + screenIds.emplace_back(screenIdOne); + Rosen::ScreenGroupChangeEvent event = Rosen::ScreenGroupChangeEvent::ADD_TO_GROUP; + DScreenGroupListener dScreenGroupListener; + dScreenGroupListener.OnChange(screenIds,event); +} +} +} + +/* Fuzzer entry point */ +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + /* Run your code on data */ + OHOS::DistributedHardware::OnChangeFuzzTest(data, size); + return 0; +} + diff --git a/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/onchange_fuzzer.h b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/onchange_fuzzer.h new file mode 100644 index 00000000..fb9cd49f --- /dev/null +++ b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/onchange_fuzzer.h @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2023 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef INITSINK_FUZZER_H +#define INITSINK_FUZZER_H + +#define FUZZ_PROJECT_NAME "onchange_fuzzer" + +#endif \ No newline at end of file diff --git a/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/project.xml b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/project.xml new file mode 100644 index 00000000..4fdbc407 --- /dev/null +++ b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/project.xml @@ -0,0 +1,25 @@ + + + + + + 1000 + + 300 + + 4096 + + -- Gitee From b91f2f776e2cc26b1d8b212da2c432eaaa1503c8 Mon Sep 17 00:00:00 2001 From: yangli Date: Mon, 22 May 2023 18:04:52 +0800 Subject: [PATCH 2/8] =?UTF-8?q?fazz=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yangli --- .../dscreenmgr/onchange_fuzzer/BUILD.gn | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn index beca0d92..dc112afb 100644 --- a/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn +++ b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn @@ -26,14 +26,15 @@ ohos_fuzztest("OnChangeFuzzTest") { include_dirs = [ "${distributedhardwarefwk_path}/interfaces/inner_kits/include", "${fwk_common_path}/utils/include", + "${windowmanager_path}/interfaces/innerkits/wm", ] include_dirs += [ "./dscreenservice/include/callback", "${common_path}/include", - "${services_path}/screenservice/sourceservice/dscreenmgr/include", "${interfaces_path}/innerkits/native_cpp/screen_sink/include", "${interfaces_path}/innerkits/native_cpp/screen_sink/include/callback", + "${services_path}/screenservice/sourceservice/dscreenmgr/include", "${interfaces_path}/innerkits/native_cpp/screen_source/include", "${interfaces_path}/innerkits/native_cpp/screen_source/include/callback", "${services_path}/common/utils/include", @@ -61,11 +62,4 @@ ohos_fuzztest("OnChangeFuzzTest") { "graphic_standard:surface", "window_manager:libdm", ] -} - -############################################################################### -group("fuzztest") { - testonly = true - deps = [ ":HandlerInitSinkFuzzTest" ] -} -############################################################################### +} \ No newline at end of file -- Gitee From 55864b21de0e2703144ee293a21ae023f37504dd Mon Sep 17 00:00:00 2001 From: yangli Date: Mon, 22 May 2023 18:12:29 +0800 Subject: [PATCH 3/8] =?UTF-8?q?fazz=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yangli --- .../sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn | 2 +- .../onchange_fuzzer/{onchange.cpp => onchange_fuzzer.cpp} | 2 +- .../dscreenmgr/onchange_fuzzer/onchange_fuzzer.h | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) rename services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/{onchange.cpp => onchange_fuzzer.cpp} (96%) diff --git a/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn index dc112afb..96628956 100644 --- a/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn +++ b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn @@ -34,10 +34,10 @@ ohos_fuzztest("OnChangeFuzzTest") { "${common_path}/include", "${interfaces_path}/innerkits/native_cpp/screen_sink/include", "${interfaces_path}/innerkits/native_cpp/screen_sink/include/callback", - "${services_path}/screenservice/sourceservice/dscreenmgr/include", "${interfaces_path}/innerkits/native_cpp/screen_source/include", "${interfaces_path}/innerkits/native_cpp/screen_source/include/callback", "${services_path}/common/utils/include", + "${services_path}/screenservice/sourceservice/dscreenmgr/include", "${services_path}/screentransport/screensourcetrans/include", ] diff --git a/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/onchange.cpp b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/onchange_fuzzer.cpp similarity index 96% rename from services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/onchange.cpp rename to services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/onchange_fuzzer.cpp index 65453afb..944fa874 100644 --- a/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/onchange.cpp +++ b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/onchange_fuzzer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/onchange_fuzzer.h b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/onchange_fuzzer.h index fb9cd49f..26a3775e 100644 --- a/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/onchange_fuzzer.h +++ b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/onchange_fuzzer.h @@ -13,8 +13,8 @@ * limitations under the License. */ -#ifndef INITSINK_FUZZER_H -#define INITSINK_FUZZER_H +#ifndef ONCHANGE_FUZZER_H +#define ONCHANGE_FUZZER_H #define FUZZ_PROJECT_NAME "onchange_fuzzer" -- Gitee From e5157908d889ee27293f6da731c84f8f46e5563b Mon Sep 17 00:00:00 2001 From: yangli Date: Mon, 22 May 2023 19:00:03 +0800 Subject: [PATCH 4/8] =?UTF-8?q?fazz=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yangli --- bundle.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bundle.json b/bundle.json index 0e267b56..3043b811 100644 --- a/bundle.json +++ b/bundle.json @@ -95,7 +95,8 @@ "//foundation/distributedhardware/distributed_screen/interfaces/innerkits/native_cpp/test/unittest:screen_interface_test", "//foundation/distributedhardware/distributed_screen/services/screenclient/test/unittest:ScreenClientTest", "//foundation/distributedhardware/distributed_screen/screenhandler/test/fuzztest:fuzztest", - "//foundation/distributedhardware/distributed_screen/interfaces/innerkits/native_cpp/test/fuzztest:fuzztest" + "//foundation/distributedhardware/distributed_screen/interfaces/innerkits/native_cpp/test/fuzztest:fuzztest", + "//foundation/distributedhardware/distributed_screen/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer:OnChangeFuzzTest" ] } } -- Gitee From cdb4318b101a7b0b3b8b7bd241aa6797baae6bd4 Mon Sep 17 00:00:00 2001 From: yangli Date: Mon, 22 May 2023 20:26:14 +0800 Subject: [PATCH 5/8] =?UTF-8?q?fazz=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yangli --- .../fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn | 3 +-- .../dscreenmgr/onchange_fuzzer/onchange_fuzzer.cpp | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn index 96628956..2402f376 100644 --- a/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn +++ b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn @@ -14,8 +14,7 @@ #####################hydra-fuzz################### import("//build/config/features.gni") import("//build/test.gni") -import( - "//foundation/distributedhardware/distributed_screen/distributedscreen.gni") +import("../../../../../../../distributedscreen.gni") ##############################fuzztest########################################## ohos_fuzztest("OnChangeFuzzTest") { diff --git a/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/onchange_fuzzer.cpp b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/onchange_fuzzer.cpp index 944fa874..5204c47a 100644 --- a/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/onchange_fuzzer.cpp +++ b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/onchange_fuzzer.cpp @@ -32,7 +32,7 @@ void OnChangeFuzzTest(const uint8_t* data, size_t size) screenIds.emplace_back(screenIdOne); Rosen::ScreenGroupChangeEvent event = Rosen::ScreenGroupChangeEvent::ADD_TO_GROUP; DScreenGroupListener dScreenGroupListener; - dScreenGroupListener.OnChange(screenIds,event); + dScreenGroupListener.OnChange(screenIds, event); } } } -- Gitee From fbdb790ea71897da45bbfd07b20e627cd9ffa137 Mon Sep 17 00:00:00 2001 From: yangli Date: Mon, 22 May 2023 20:49:50 +0800 Subject: [PATCH 6/8] =?UTF-8?q?fazz=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yangli --- .../sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn index 2402f376..548ec716 100644 --- a/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn +++ b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn @@ -49,7 +49,9 @@ ohos_fuzztest("OnChangeFuzzTest") { sources = [ "onchange_fuzzer.cpp" ] - deps = [ "${services_path}/screenservice/sourceservice:distributed_screen_source" ] + deps = [ + "${services_path}/screenservice/sourceservice:distributed_screen_source", + ] defines = [ "HI_LOG_ENABLE", -- Gitee From f0a7ee4e0cfd325e38d1feb8e05a421104839899 Mon Sep 17 00:00:00 2001 From: yangli Date: Mon, 22 May 2023 21:14:12 +0800 Subject: [PATCH 7/8] =?UTF-8?q?fazz=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yangli --- .../fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn index 548ec716..2004bfb0 100644 --- a/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn +++ b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn @@ -49,7 +49,7 @@ ohos_fuzztest("OnChangeFuzzTest") { sources = [ "onchange_fuzzer.cpp" ] - deps = [ + deps = [ "${services_path}/screenservice/sourceservice:distributed_screen_source", ] -- Gitee From 3d034958919d8ea1c3d13a90bc282cbde9fb46ab Mon Sep 17 00:00:00 2001 From: yangli Date: Tue, 23 May 2023 09:38:14 +0800 Subject: [PATCH 8/8] =?UTF-8?q?fazz=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yangli --- .../fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn index 2004bfb0..301cb508 100644 --- a/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn +++ b/services/screenservice/test/fuzztest/sourceservice/dscreenmgr/onchange_fuzzer/BUILD.gn @@ -63,4 +63,4 @@ ohos_fuzztest("OnChangeFuzzTest") { "graphic_standard:surface", "window_manager:libdm", ] -} \ No newline at end of file +} -- Gitee