diff --git a/services/screentransport/test/fuzztest/screensourceprocessor/onoutputformatchanged_fuzzer/onoutputformatchanged_fuzzer.cpp b/services/screentransport/test/fuzztest/screensourceprocessor/onoutputformatchanged_fuzzer/onoutputformatchanged_fuzzer.cpp index 62dc76c68efaa0f2bb787b186e1d8e9fa738cfa4..78e393d3761ca45deca3488216d39142a8e54460 100644 --- a/services/screentransport/test/fuzztest/screensourceprocessor/onoutputformatchanged_fuzzer/onoutputformatchanged_fuzzer.cpp +++ b/services/screentransport/test/fuzztest/screensourceprocessor/onoutputformatchanged_fuzzer/onoutputformatchanged_fuzzer.cpp @@ -16,12 +16,12 @@ #include "onoutputformatchanged_fuzzer.h" #include - #include "avcodec_common.h" #include "avcodec_errors.h" #include "dscreen_constants.h" #include "dscreen_constants.h" #include "dscreen_errcode.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iimage_source_processor_listener.h" #include "image_encoder_callback.h" #include "image_source_encoder.h" @@ -31,30 +31,30 @@ namespace OHOS { namespace DistributedHardware { -void OnOutputFormatChangedFuzzTest(const uint8_t* data, size_t size) +void OnOutputFormatChangedFuzzTest(const uint8_t *data, size_t size) { - if ((data == nullptr) || (size < sizeof(int32_t))) { + if ((data == nullptr) || (size == 0)) { return; } std::shared_ptr listener = std::make_shared(); std::shared_ptr encoder = std::make_shared(listener); std::shared_ptr encoderCallback = std::make_shared(encoder); + FuzzedDataProvider dataProvider(data, size); + int32_t width = dataProvider.ConsumeIntegral(); + int32_t height = dataProvider.ConsumeIntegral(); Media::Format format; - int32_t width = *(reinterpret_cast(data)); - int32_t height = *(reinterpret_cast(data)); format.PutIntValue(KEY_WIDTH, width); format.PutIntValue(KEY_HEIGHT, height); encoderCallback->OnOutputFormatChanged(format); } -} // namespace DistributedHardware -} // namespace OHOS +} // namespace DistributedHardware +} // namespace OHOS /* Fuzzer entry point */ -extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { /* Run your code on data */ OHOS::DistributedHardware::OnOutputFormatChangedFuzzTest(data, size); return 0; } - diff --git a/services/screentransport/test/fuzztest/screensourceprocessor/onoutputformatchanged_fuzzer/project.xml b/services/screentransport/test/fuzztest/screensourceprocessor/onoutputformatchanged_fuzzer/project.xml index 4fdbc407f205680885fa42663163b5c987f123a6..dca0b2a0aec9fea8bdf0151dad6ec8b1acc1fc50 100644 --- a/services/screentransport/test/fuzztest/screensourceprocessor/onoutputformatchanged_fuzzer/project.xml +++ b/services/screentransport/test/fuzztest/screensourceprocessor/onoutputformatchanged_fuzzer/project.xml @@ -16,7 +16,7 @@ - 1000 + 10000 300 diff --git a/services/softbusadapter/test/fuzztest/softbusadapter_fuzzer/project.xml b/services/softbusadapter/test/fuzztest/softbusadapter_fuzzer/project.xml index 7133b2b92440904a5ed04b838733acea0f97486a..93837373f31c924472b9b4ee2139348e97c1e470 100644 --- a/services/softbusadapter/test/fuzztest/softbusadapter_fuzzer/project.xml +++ b/services/softbusadapter/test/fuzztest/softbusadapter_fuzzer/project.xml @@ -16,7 +16,7 @@ - 1000 + 10000 300 diff --git a/services/softbusadapter/test/fuzztest/softbusadapter_fuzzer/softbusadapter_fuzzer.cpp b/services/softbusadapter/test/fuzztest/softbusadapter_fuzzer/softbusadapter_fuzzer.cpp index 8b9983117c61faccc0d5df04af1178b93bddf57e..dbaf6e0af3518a4bc17e094199ab0218987933ee 100644 --- a/services/softbusadapter/test/fuzztest/softbusadapter_fuzzer/softbusadapter_fuzzer.cpp +++ b/services/softbusadapter/test/fuzztest/softbusadapter_fuzzer/softbusadapter_fuzzer.cpp @@ -18,6 +18,7 @@ #include "dscreen_constants.h" #include "dscreen_errcode.h" #include "dscreen_util.h" +#include "fuzzer/FuzzedDataProvider.h" #include "isoftbus_listener.h" #include "socket.h" #include "softbus_adapter.h" @@ -27,31 +28,32 @@ namespace OHOS { namespace DistributedHardware { namespace { - const std::string PEER_SESSION_NAME = "ohos.dhardware.dscreen.session8647073e02e7a78f09473aa324"; - const std::string REMOTE_DEV_ID = "f6d4c0864707aefte7a78f09473aa122ff57fc81c00981fcf5be989e7d112324"; - const std::string DSCREEN_PKG_NAME_TEST = "ohos.dhardware.dscreen"; +const std::string PEER_SESSION_NAME = "ohos.dhardware.dscreen.session8647073e02e7a78f09473aa324"; +const std::string REMOTE_DEV_ID = "f6d4c0864707aefte7a78f09473aa122ff57fc81c00981fcf5be989e7d112324"; +const std::string DSCREEN_PKG_NAME_TEST = "ohos.dhardware.dscreen"; } -void SoftbusAdapterFuzzTest(const uint8_t* data, size_t size) +void SoftbusAdapterFuzzTest(const uint8_t *data, size_t size) { - if ((data == nullptr) || (size < sizeof(int32_t))) { + if ((data == nullptr) || (size == 0)) { return; } - int32_t sessionId = *(reinterpret_cast(data)); + FuzzedDataProvider dataProvider(data, size); + int32_t sessionId = dataProvider.ConsumeIntegral(); + uint32_t dataLen = dataProvider.ConsumeIntegral(); + unsigned int dataLen1 = dataProvider.ConsumeIntegral(); PeerSocketInfo peerSocketInfo = { - .name = const_cast(PEER_SESSION_NAME.c_str()), - .networkId = const_cast(REMOTE_DEV_ID.c_str()), - .pkgName = const_cast(DSCREEN_PKG_NAME_TEST.c_str()), + .name = const_cast(PEER_SESSION_NAME.c_str()), + .networkId = const_cast(REMOTE_DEV_ID.c_str()), + .pkgName = const_cast(DSCREEN_PKG_NAME_TEST.c_str()), .dataType = DATA_TYPE_BYTES }; ShutdownReason reason = SHUTDOWN_REASON_UNKNOWN; void *adapterData = nullptr; - uint32_t dataLen = *(reinterpret_cast(data)); StreamData *stream = nullptr; StreamData *ext = nullptr; StreamFrameInfo *info = nullptr; - unsigned int dataLen1 = *(reinterpret_cast(data)); std::shared_ptr adapter = std::make_shared(); adapter->sessListener_.OnBind(sessionId, peerSocketInfo); @@ -64,63 +66,68 @@ void SoftbusAdapterFuzzTest(const uint8_t* data, size_t size) adapter->CloseSoftbusSession(sessionId); } -void SoftbusOnBytesReceivedFuzzTest(const uint8_t* data, size_t size) +void SoftbusOnBytesReceivedFuzzTest(const uint8_t *data, size_t size) { - if ((data == nullptr) || (size < (sizeof(int32_t)))) { + if ((data == nullptr) || (size == 0)) { return; } - int32_t sessionId = *(reinterpret_cast(data)); + FuzzedDataProvider dataProvider(data, size); + int32_t sessionId = dataProvider.ConsumeIntegral(); + uint32_t dataLen = dataProvider.ConsumeIntegral(); void *adapterData = nullptr; - uint32_t dataLen = *(reinterpret_cast(data)); std::shared_ptr adapter = std::make_shared(); adapter->OnBytesReceived(sessionId, adapterData, dataLen); } -void SoftbusOnMessageReceivedFuzzTest(const uint8_t* data, size_t size) +void SoftbusOnMessageReceivedFuzzTest(const uint8_t *data, size_t size) { - if ((data == nullptr) || (size < (sizeof(int32_t)))) { + if ((data == nullptr) || (size == 0)) { return; } - int32_t sessionId = *(reinterpret_cast(data)); + FuzzedDataProvider dataProvider(data, size); + int32_t sessionId = dataProvider.ConsumeIntegral(); + unsigned int dataLen = dataProvider.ConsumeIntegral(); void *adapterData = nullptr; - unsigned int dataLen = *(reinterpret_cast(data)); std::shared_ptr adapter = std::make_shared(); adapter->OnMessageReceived(sessionId, adapterData, dataLen); } -void SoftbusOnSessionClosedFuzzTest(const uint8_t* data, size_t size) +void SoftbusOnSessionClosedFuzzTest(const uint8_t *data, size_t size) { - if ((data == nullptr) || (size < (sizeof(int32_t)))) { + if ((data == nullptr) || (size == 0)) { return; } - int32_t sessionId = *(reinterpret_cast(data)); + FuzzedDataProvider dataProvider(data, size); + int32_t sessionId = dataProvider.ConsumeIntegral(); std::shared_ptr adapter = std::make_shared(); ShutdownReason reason = SHUTDOWN_REASON_UNKNOWN; adapter->OnSoftbusSessionClosed(sessionId, reason); } -void SoftbusOnSessionOpenedFuzzTest(const uint8_t* data, size_t size) +void SoftbusOnSessionOpenedFuzzTest(const uint8_t *data, size_t size) { - if ((data == nullptr) || (size < (sizeof(int32_t)))) { + if ((data == nullptr) || (size == 0)) { return; } - int32_t sessionId = *(reinterpret_cast(data)); + FuzzedDataProvider dataProvider(data, size); + int32_t sessionId = dataProvider.ConsumeIntegral(); PeerSocketInfo peerSocketInfo = { - .name = const_cast(PEER_SESSION_NAME.c_str()), - .networkId = const_cast(REMOTE_DEV_ID.c_str()), - .pkgName = const_cast(DSCREEN_PKG_NAME_TEST.c_str()), + .name = const_cast(PEER_SESSION_NAME.c_str()), + .networkId = const_cast(REMOTE_DEV_ID.c_str()), + .pkgName = const_cast(DSCREEN_PKG_NAME_TEST.c_str()), .dataType = DATA_TYPE_BYTES }; std::shared_ptr adapter = std::make_shared(); adapter->OnSoftbusSessionOpened(sessionId, peerSocketInfo); } -void SoftbusOnStreamReceivedFuzzTest(const uint8_t* data, size_t size) +void SoftbusOnStreamReceivedFuzzTest(const uint8_t *data, size_t size) { - if ((data == nullptr) || (size < (sizeof(int32_t)))) { + if ((data == nullptr) || (size == 0)) { return; } - int32_t sessionId = *(reinterpret_cast(data)); + FuzzedDataProvider dataProvider(data, size); + int32_t sessionId = dataProvider.ConsumeIntegral(); StreamData *stream = nullptr; StreamData *ext = nullptr; StreamFrameInfo *info = nullptr; @@ -128,78 +135,82 @@ void SoftbusOnStreamReceivedFuzzTest(const uint8_t* data, size_t size) adapter->OnStreamReceived(sessionId, stream, ext, info); } -void SoftbusRegisterSoftbusListenerFuzzTest(const uint8_t* data, size_t size) +void SoftbusRegisterSoftbusListenerFuzzTest(const uint8_t *data, size_t size) { if ((data == nullptr) || (size == 0)) { return; } - std::shared_ptr listener = std::make_shared(); - std::string sessionName(reinterpret_cast(data), size); - std::string peerDevId(reinterpret_cast(data), size); + FuzzedDataProvider dataProvider(data, size); + std::string sessionName(dataProvider.ConsumeRandomLengthString()); + std::string peerDevId(dataProvider.ConsumeRandomLengthString()); std::shared_ptr softbusAdapter = std::make_shared(); + std::shared_ptr listener = std::make_shared(); (void)softbusAdapter->RegisterSoftbusListener(listener, sessionName, peerDevId); (void)softbusAdapter->UnRegisterSoftbusListener(sessionName, peerDevId); } -void SoftbusUnRegisterSoftbusListenerFuzzTest(const uint8_t* data, size_t size) +void SoftbusUnRegisterSoftbusListenerFuzzTest(const uint8_t *data, size_t size) { if ((data == nullptr) || (size == 0)) { return; } - std::string sessionName(reinterpret_cast(data), size); - std::string peerDevId(reinterpret_cast(data), size); + FuzzedDataProvider dataProvider(data, size); + std::string sessionName(dataProvider.ConsumeRandomLengthString()); + std::string peerDevId(dataProvider.ConsumeRandomLengthString()); std::shared_ptr softbusAdapter = std::make_shared(); (void)softbusAdapter->UnRegisterSoftbusListener(sessionName, peerDevId); } -void SoftbusCreateSoftbusSessionServerFuzzTest(const uint8_t* data, size_t size) +void SoftbusCreateSoftbusSessionServerFuzzTest(const uint8_t *data, size_t size) { if ((data == nullptr) || (size == 0)) { return; } - std::string pkgName(reinterpret_cast(data), size); - std::string sessionName(reinterpret_cast(data), size); - std::string peerDevId(reinterpret_cast(data), size); + FuzzedDataProvider dataProvider(data, size); + std::string sessionName(dataProvider.ConsumeRandomLengthString()); + std::string peerDevId(dataProvider.ConsumeRandomLengthString()); + std::string pkgName(dataProvider.ConsumeRandomLengthString()); std::shared_ptr softbusAdapter = std::make_shared(); (void)softbusAdapter->CreateSoftbusSessionServer(pkgName, sessionName, peerDevId); (void)softbusAdapter->RemoveSoftbusSessionServer(pkgName, sessionName, peerDevId); } -void SoftbusRemoveSoftbusSessionServerFuzzTest(const uint8_t* data, size_t size) +void SoftbusRemoveSoftbusSessionServerFuzzTest(const uint8_t *data, size_t size) { if ((data == nullptr) || (size == 0)) { return; } - std::string pkgName(reinterpret_cast(data), size); - std::string sessionName(reinterpret_cast(data), size); - std::string peerDevId(reinterpret_cast(data), size); + FuzzedDataProvider dataProvider(data, size); + std::string sessionName(dataProvider.ConsumeRandomLengthString()); + std::string peerDevId(dataProvider.ConsumeRandomLengthString()); + std::string pkgName(dataProvider.ConsumeRandomLengthString()); std::shared_ptr softbusAdapter = std::make_shared(); (void)softbusAdapter->RemoveSoftbusSessionServer(pkgName, sessionName, peerDevId); } -void SoftbusOpenSoftbusSessionFuzzTest(const uint8_t* data, size_t size) +void SoftbusOpenSoftbusSessionFuzzTest(const uint8_t *data, size_t size) { if ((data == nullptr) || (size == 0)) { return; } - std::string mySessionName(reinterpret_cast(data), size); - std::string peerSessionName(reinterpret_cast(data), size); - std::string peerDevId(reinterpret_cast(data), size); + FuzzedDataProvider dataProvider(data, size); + std::string mySessionName(dataProvider.ConsumeRandomLengthString()); + std::string peerSessionName(dataProvider.ConsumeRandomLengthString()); + std::string peerDevId(dataProvider.ConsumeRandomLengthString(size)); std::shared_ptr softbusAdapter = std::make_shared(); int32_t socketId = softbusAdapter->OpenSoftbusSession(mySessionName, peerSessionName, peerDevId); (void)softbusAdapter->CloseSoftbusSession(socketId); } - -} // namespace DistributedHardware -} // namespace OHOS +} // namespace DistributedHardware +} // namespace OHOS /* Fuzzer entry point */ -extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { /* Run your code on data */ OHOS::DistributedHardware::SoftbusAdapterFuzzTest(data, size);