diff --git a/37.diff b/37.diff new file mode 100644 index 0000000000000000000000000000000000000000..6d8369b7a77b921ad88ad3cad2413ea7cec26a7e --- /dev/null +++ b/37.diff @@ -0,0 +1,87 @@ +diff --git a/services/src/concurrent_task_service_stub.cpp b/services/src/concurrent_task_service_stub.cpp +index 2e8daccde144b9e6f3b79422d3187dcafa5a21d1..bb4713eb6e467d7e9f87acae6d728e1b328bf978 100644 +--- a/services/src/concurrent_task_service_stub.cpp ++++ b/services/src/concurrent_task_service_stub.cpp +@@ -18,7 +18,7 @@ + #include "concurrent_task_errors.h" + #include "string_ex.h" + #include "ipc_skeleton.h" +- ++#include "qos.h" + namespace OHOS { + namespace ConcurrentTask { + namespace { +diff --git a/test/fuzztest/concurrent_fuzzer/concurrent_fuzzer.cpp b/test/fuzztest/concurrent_fuzzer/concurrent_fuzzer.cpp +index c5d113e0da7a2445b3d57c50cc36c5683b990174..ed9d7046f47b298afba078a8940a6da7137cae3c 100644 +--- a/test/fuzztest/concurrent_fuzzer/concurrent_fuzzer.cpp ++++ b/test/fuzztest/concurrent_fuzzer/concurrent_fuzzer.cpp +@@ -102,6 +102,69 @@ bool FuzzConcurrentTaskServiceQueryInterval(const uint8_t* data, size_t size) + } + return true; + } ++ ++bool FuzzConcurrentTaskServiceStopRemoteObject(const uint8_t* data, size_t size) ++{ ++ g_baseFuzzData = data; ++ g_baseFuzzSize = size; ++ g_baseFuzzPos = 0; ++ QOS::StopRemoteObject(); ++ return true; ++} ++ ++bool FuzzConcurrentTaskServiceSetThreadQos(const uint8_t* data, size_t size) ++{ ++ g_baseFuzzData = data; ++ g_baseFuzzSize = size; ++ g_baseFuzzPos = 0; ++ if (size > sizeof(int) + sizeof(int)) { ++ int level = GetData(); ++ level = level % 5; ++ level = level < 0 ? (-1) * level : level; ++ QOS::Qos_Level T ; ++ T = static_cast(level); ++ QOS::SetThreadQos(T); ++ } ++ return true; ++} ++ ++bool FuzzConcurrentTaskServiceSetQosForOtherThread(const uint8_t* data, size_t size) ++{ ++ g_baseFuzzData = data; ++ g_baseFuzzSize = size; ++ g_baseFuzzPos = 0; ++ if (size > sizeof(int) + sizeof(int)) { ++ int level = GetData(); ++ int tid = GetData(); ++ QOS::Qos_Level T ; ++ level = level % 5; ++ level = level < 0 ? (-1) * level : level; ++ T = static_cast(level); ++ QOS::SetQosForOtherThread(T, tid); ++ } ++ return true; ++} ++ ++bool FuzzConcurrentTaskServiceResetThreadQos(const uint8_t* data, size_t size) ++{ ++ g_baseFuzzData = data; ++ g_baseFuzzSize = size; ++ g_baseFuzzPos = 0; ++ QOS::ResetThreadQos(); ++ return true; ++} ++ ++bool FuzzConcurrentTaskServiceResetQosForOtherThread(const uint8_t* data, size_t size) ++{ ++ g_baseFuzzData = data; ++ g_baseFuzzSize = size; ++ g_baseFuzzPos = 0; ++ if (size > sizeof(int) + sizeof(int)) { ++ int tid = GetData(); ++ QOS::ResetQosForOtherThread(tid); ++ } ++ return true; ++} + } // namespace OHOS + + /* Fuzzer entry point */ diff --git a/test/fuzztest/concurrent_fuzzer/concurrent_fuzzer.cpp b/test/fuzztest/concurrent_fuzzer/concurrent_fuzzer.cpp index c5d113e0da7a2445b3d57c50cc36c5683b990174..ed9d7046f47b298afba078a8940a6da7137cae3c 100644 --- a/test/fuzztest/concurrent_fuzzer/concurrent_fuzzer.cpp +++ b/test/fuzztest/concurrent_fuzzer/concurrent_fuzzer.cpp @@ -102,6 +102,69 @@ bool FuzzConcurrentTaskServiceQueryInterval(const uint8_t* data, size_t size) } return true; } + +bool FuzzConcurrentTaskServiceStopRemoteObject(const uint8_t* data, size_t size) +{ + g_baseFuzzData = data; + g_baseFuzzSize = size; + g_baseFuzzPos = 0; + QOS::StopRemoteObject(); + return true; +} + +bool FuzzConcurrentTaskServiceSetThreadQos(const uint8_t* data, size_t size) +{ + g_baseFuzzData = data; + g_baseFuzzSize = size; + g_baseFuzzPos = 0; + if (size > sizeof(int) + sizeof(int)) { + int level = GetData(); + level = level % 5; + level = level < 0 ? (-1) * level : level; + QOS::Qos_Level T ; + T = static_cast(level); + QOS::SetThreadQos(T); + } + return true; +} + +bool FuzzConcurrentTaskServiceSetQosForOtherThread(const uint8_t* data, size_t size) +{ + g_baseFuzzData = data; + g_baseFuzzSize = size; + g_baseFuzzPos = 0; + if (size > sizeof(int) + sizeof(int)) { + int level = GetData(); + int tid = GetData(); + QOS::Qos_Level T ; + level = level % 5; + level = level < 0 ? (-1) * level : level; + T = static_cast(level); + QOS::SetQosForOtherThread(T, tid); + } + return true; +} + +bool FuzzConcurrentTaskServiceResetThreadQos(const uint8_t* data, size_t size) +{ + g_baseFuzzData = data; + g_baseFuzzSize = size; + g_baseFuzzPos = 0; + QOS::ResetThreadQos(); + return true; +} + +bool FuzzConcurrentTaskServiceResetQosForOtherThread(const uint8_t* data, size_t size) +{ + g_baseFuzzData = data; + g_baseFuzzSize = size; + g_baseFuzzPos = 0; + if (size > sizeof(int) + sizeof(int)) { + int tid = GetData(); + QOS::ResetQosForOtherThread(tid); + } + return true; +} } // namespace OHOS /* Fuzzer entry point */