diff --git a/interfaces/native/vibrator/test/fuzztest/startvibrator_fuzzer/startvibrator_fuzzer.cpp b/interfaces/native/vibrator/test/fuzztest/startvibrator_fuzzer/startvibrator_fuzzer.cpp index a580fe11a75b952f414b3a73a11df10b131971b9..675c0008821d51a9e495e9f592d060c2ddd0dfd8 100644 --- a/interfaces/native/vibrator/test/fuzztest/startvibrator_fuzzer/startvibrator_fuzzer.cpp +++ b/interfaces/native/vibrator/test/fuzztest/startvibrator_fuzzer/startvibrator_fuzzer.cpp @@ -18,15 +18,16 @@ #include #include #include +#include #include "vibrator_agent.h" namespace OHOS { bool StartVibratorFuzzTest(const uint8_t* data, size_t size) { - const char *argv = reinterpret_cast(data); - int32_t ret = OHOS::Sensors::StartVibrator(argv); - int32_t ret2 = std::strcmp(argv, "haptic.clock.timer"); + std::string argv(reinterpret_cast(data), size); + int32_t ret = OHOS::Sensors::StartVibrator(argv.c_str()); + int32_t ret2 = std::strcmp(argv.c_str(), "haptic.clock.timer"); if ((ret2 != 0 && ret == 0) || (ret2 == 0 && ret != 0)) { return false; } diff --git a/interfaces/native/vibrator/test/fuzztest/startvibratoronce_fuzzer/startvibratoronce_fuzzer.cpp b/interfaces/native/vibrator/test/fuzztest/startvibratoronce_fuzzer/startvibratoronce_fuzzer.cpp index e98b82c17a911eca45617ecee38b2314f3bc4d4c..d677012efb03dff22236bdf144b49acbacebb2ee 100644 --- a/interfaces/native/vibrator/test/fuzztest/startvibratoronce_fuzzer/startvibratoronce_fuzzer.cpp +++ b/interfaces/native/vibrator/test/fuzztest/startvibratoronce_fuzzer/startvibratoronce_fuzzer.cpp @@ -17,6 +17,7 @@ #include #include +#include #include "vibrator_agent.h" @@ -27,7 +28,8 @@ constexpr int32_t MAX_VIBRATOR_TIME = 1800000; namespace OHOS { bool StartVibratorOnceFuzzTest(const uint8_t* data, size_t size) { - uintptr_t duration = reinterpret_cast(data); + std::string argv(reinterpret_cast(data), size); + uint32_t duration = static_cast(std::atoi(argv.c_str())); int32_t ret = OHOS::Sensors::StartVibratorOnce(duration); if ((duration > MAX_VIBRATOR_TIME && ret == 0) || (duration <= MAX_VIBRATOR_TIME && ret != 0)) { return false; diff --git a/interfaces/native/vibrator/test/fuzztest/stopvibrator_fuzzer/stopvibrator_fuzzer.cpp b/interfaces/native/vibrator/test/fuzztest/stopvibrator_fuzzer/stopvibrator_fuzzer.cpp index 7bec41960eab1ccda4f7d727e309aaffff82836b..37a43a9fec63e2577150246d6034cfed30f26679 100644 --- a/interfaces/native/vibrator/test/fuzztest/stopvibrator_fuzzer/stopvibrator_fuzzer.cpp +++ b/interfaces/native/vibrator/test/fuzztest/stopvibrator_fuzzer/stopvibrator_fuzzer.cpp @@ -18,15 +18,16 @@ #include #include #include +#include #include "vibrator_agent.h" namespace OHOS { bool StopVibratorFuzzTest(const uint8_t* data, size_t size) { - const char *argv = reinterpret_cast(data); - int32_t ret = OHOS::Sensors::StopVibrator(argv); - int32_t ret2 = strcmp(argv, "time") != 0 && strcmp(argv, "preset"); + std::string argv(reinterpret_cast(data), size); + int32_t ret = OHOS::Sensors::StopVibrator(argv.c_str()); + int32_t ret2 = strcmp(argv.c_str(), "time") != 0 && strcmp(argv.c_str(), "preset"); if ((ret2 != 0 && ret == 0) || (ret2 == 0 && ret != 0)) { return false; }